projects
/
open-adventure.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
fda1abe
)
Make RNDVOC() into better C.
author
Jason S. Ninneman
<jsn@mbar.us>
Mon, 29 May 2017 20:59:06 +0000
(13:59 -0700)
committer
Jason S. Ninneman
<jsn@mbar.us>
Mon, 29 May 2017 20:59:06 +0000
(13:59 -0700)
misc.c
patch
|
blob
|
history
diff --git
a/misc.c
b/misc.c
index 1e72ba7cb2bc3dc90460f4d0d2bfbb1ba07fdca0..e95439c01e67aaab20c523a31fb5dc31f5cbc96b 100644
(file)
--- a/
misc.c
+++ b/
misc.c
@@
-778,7
+778,7
@@
long randrange(long range)
#undef RNDVOC
long fRNDVOC(long CHAR, long FORCE) {
#undef RNDVOC
long fRNDVOC(long CHAR, long FORCE) {
-long DIV,
I,
J, RNDVOC;
+long DIV, J, RNDVOC;
/* Searches the vocabulary for a word whose second character is char, and
* changes that word such that each of the other four characters is a
/* Searches the vocabulary for a word whose second character is char, and
* changes that word such that each of the other four characters is a
@@
-787,22
+787,26
@@
long DIV, I, J, RNDVOC;
RNDVOC=FORCE;
RNDVOC=FORCE;
- if(RNDVOC != 0) goto L3;
- for (I=1; I<=5; I++) {
- J=11+randrange(26);
- if(I == 2)J=CHAR;
- RNDVOC=RNDVOC*64+J;
- } /* end loop */
-L3: J=10000;
- DIV=64L*64L*64L;
- for (I=1; I<=TABSIZ; I++) {
- J=J+7;
- if(MOD((ATAB[I]-J*J)/DIV,64L) == CHAR) goto L8;
- /*etc*/ ;
- } /* end loop */
- BUG(5);
-L8: ATAB[I]=RNDVOC+J*J;
+ if (RNDVOC == 0) {
+ for (int I = 1; I <= 5; I++) {
+ J = 11 + randrange(26);
+ if (I == 2)
+ J = CHAR;
+ RNDVOC = RNDVOC * 64 + J;
+ }
+ }
+
+ J = 10000;
+ DIV = 64L * 64L * 64L;
+
+ for (int I = 1; I <= TABSIZ; I++) {
+ J = J + 7;
+ if (MOD((ATAB[I]-J*J)/DIV, 64L) == CHAR)
+ break;
+ }
+
+ ATAB[I] = RNDVOC + J * J;
return(RNDVOC);
}
return(RNDVOC);
}