projects
/
open-adventure.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Introduce command encapsulation structure.
[open-adventure.git]
/
main.c
diff --git
a/main.c
b/main.c
index e16362a0c1b2c767259288744ae4cfe4409d3979..b99eb22969bc27a929cceb3fdaaf5a8abcfb93e4 100644
(file)
--- a/
main.c
+++ b/
main.c
@@
-925,11
+925,11
@@
static void listobjects(void)
static bool do_command(FILE *cmdin)
/* Get and execute a command */
{
static bool do_command(FILE *cmdin)
/* Get and execute a command */
{
- long
verb = 0,
V1, V2;
+ long V1, V2;
long kmod, defn;
static long igo = 0;
long kmod, defn;
static long igo = 0;
- static
long obj = 0
;
-
enum speechpart part
;
+ static
struct command_t command
;
+
command.verb = 0
;
/* Can't leave cave once it's closing (except by main office). */
if (OUTSID(game.newloc) && game.newloc != 0 && game.closng) {
/* Can't leave cave once it's closing (except by main office). */
if (OUTSID(game.newloc) && game.newloc != 0 && game.closng) {
@@
-979,7
+979,7
@@
static bool do_command(FILE *cmdin)
if (TOTING(BEAR))RSPEAK(TAME_BEAR);
speak(msg);
if (FORCED(game.loc)) {
if (TOTING(BEAR))RSPEAK(TAME_BEAR);
speak(msg);
if (FORCED(game.loc)) {
- if (playermove(verb, 1))
+ if (playermove(
command.
verb, 1))
return true;
else
continue; /* back to top of main interpreter loop */
return true;
else
continue; /* back to top of main interpreter loop */
@@
-990,9
+990,9
@@
static bool do_command(FILE *cmdin)
listobjects();
L2012:
listobjects();
L2012:
- verb = 0;
- game.oldobj = obj;
- obj = 0;
+
command.
verb = 0;
+ game.oldobj =
command.
obj;
+
command.
obj = 0;
L2600:
checkhints();
L2600:
checkhints();
@@
-1032,10
+1032,10
@@
L2607:
if (game.trndex <= TRNVLS)
game.thresh = MOD(TRNVAL[game.trndex], 100000) + 1;
}
if (game.trndex <= TRNVLS)
game.thresh = MOD(TRNVAL[game.trndex], 100000) + 1;
}
- if (verb == SAY && WD2 > 0)
- verb = 0;
- if (verb == SAY) {
- part = transitive;
+ if (
command.
verb == SAY && WD2 > 0)
+
command.
verb = 0;
+ if (
command.
verb == SAY) {
+
command.
part = transitive;
goto Laction;
}
if (closecheck()) {
goto Laction;
}
if (closecheck()) {
@@
-1091,17
+1091,17
@@
Lookup:
kmod = MOD(defn, 1000);
switch (defn / 1000) {
case 0:
kmod = MOD(defn, 1000);
switch (defn / 1000) {
case 0:
- if (playermove(verb, kmod))
+ if (playermove(
command.
verb, kmod))
return true;
else
continue; /* back to top of main interpreter loop */
case 1:
return true;
else
continue; /* back to top of main interpreter loop */
case 1:
- part = unknown;
- obj = kmod;
+
command.
part = unknown;
+
command.
obj = kmod;
break;
case 2:
break;
case 2:
- part = intransitive;
- verb = kmod;
+
command.
part = intransitive;
+
command.
verb = kmod;
break;
case 3:
RSPEAK(kmod);
break;
case 3:
RSPEAK(kmod);
@@
-1111,11
+1111,11
@@
Lookup:
}
Laction:
}
Laction:
- switch (action(cmdin,
part, verb, obj
)) {
+ switch (action(cmdin,
command
)) {
case GO_TERMINATE:
return true;
case GO_MOVE:
case GO_TERMINATE:
return true;
case GO_MOVE:
- playermove(verb, NUL);
+ playermove(
command.
verb, NUL);
return true;
case GO_TOP:
continue; /* back to top of main interpreter loop */
return true;
case GO_TOP:
continue; /* back to top of main interpreter loop */
@@
-1138,7
+1138,7
@@
Laction:
* (see attack()). */
SETPRM(1, WD1, WD1X);
RSPEAK(DO_WHAT);
* (see attack()). */
SETPRM(1, WD1, WD1X);
RSPEAK(DO_WHAT);
- obj = 0;
+
command.
obj = 0;
goto L2600;
case GO_DWARFWAKE:
/* Oh dear, he's disturbed the dwarves. */
goto L2600;
case GO_DWARFWAKE:
/* Oh dear, he's disturbed the dwarves. */