Unspk'd pour command
This commit is contained in:
parent
5613b0ce36
commit
38970a1c98
4 changed files with 15 additions and 18 deletions
13
actions.c
13
actions.c
|
@ -873,33 +873,30 @@ static int pour(token_t verb, token_t obj)
|
||||||
/* Pour. If no object, or object is bottle, assume contents of bottle.
|
/* Pour. If no object, or object is bottle, assume contents of bottle.
|
||||||
* special tests for pouring water or oil on plant or rusty door. */
|
* special tests for pouring water or oil on plant or rusty door. */
|
||||||
{
|
{
|
||||||
int spk = actions[verb].message;
|
|
||||||
if (obj == BOTTLE || obj == NO_OBJECT)
|
if (obj == BOTTLE || obj == NO_OBJECT)
|
||||||
obj = LIQUID();
|
obj = LIQUID();
|
||||||
if (obj == NO_OBJECT)
|
if (obj == NO_OBJECT)
|
||||||
return GO_UNKNOWN;
|
return GO_UNKNOWN;
|
||||||
if (!TOTING(obj)) {
|
if (!TOTING(obj)) {
|
||||||
rspeak(spk);
|
rspeak(actions[verb].message);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
spk = CANT_POUR;
|
|
||||||
if (obj != OIL && obj != WATER) {
|
if (obj != OIL && obj != WATER) {
|
||||||
rspeak(spk);
|
rspeak(CANT_POUR);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
if (HERE(URN) && game.prop[URN] == URN_EMPTY)
|
if (HERE(URN) && game.prop[URN] == URN_EMPTY)
|
||||||
return fill(verb, URN);
|
return fill(verb, URN);
|
||||||
game.prop[BOTTLE] = EMPTY_BOTTLE;
|
game.prop[BOTTLE] = EMPTY_BOTTLE;
|
||||||
game.place[obj] = LOC_NOWHERE;
|
game.place[obj] = LOC_NOWHERE;
|
||||||
spk = GROUND_WET;
|
|
||||||
if (!(AT(PLANT) || AT(DOOR))) {
|
if (!(AT(PLANT) || AT(DOOR))) {
|
||||||
rspeak(spk);
|
rspeak(GROUND_WET);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
if (!AT(DOOR)) {
|
if (!AT(DOOR)) {
|
||||||
spk = SHAKING_LEAVES;
|
|
||||||
if (obj != WATER) {
|
if (obj != WATER) {
|
||||||
rspeak(spk);
|
rspeak(SHAKING_LEAVES);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
pspeak(PLANT, look, game.prop[PLANT] + 3, true);
|
pspeak(PLANT, look, game.prop[PLANT] + 3, true);
|
||||||
|
|
4
cheat.c
4
cheat.c
|
@ -19,8 +19,8 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
// Initialize game variables
|
// Initialize game variables
|
||||||
initialise();
|
initialise();
|
||||||
|
|
||||||
/* we're generating a saved game, so saved once by default,
|
/* we're generating a saved game, so saved once by default,
|
||||||
* unless overridden with command-line options below.
|
* unless overridden with command-line options below.
|
||||||
*/
|
*/
|
||||||
game.saved = 1;
|
game.saved = 1;
|
||||||
|
|
4
main.c
4
main.c
|
@ -689,7 +689,7 @@ static bool playermove( int motion)
|
||||||
* entries check for game.prop(TROLL)=0.) Special
|
* entries check for game.prop(TROLL)=0.) Special
|
||||||
* stuff for bear. */
|
* stuff for bear. */
|
||||||
if (game.prop[TROLL] == TROLL_PAIDONCE) {
|
if (game.prop[TROLL] == TROLL_PAIDONCE) {
|
||||||
pspeak(TROLL, look, TROLL_PAIDONCE, true);
|
pspeak(TROLL, look, TROLL_PAIDONCE, true);
|
||||||
game.prop[TROLL] = TROLL_UNPAID;
|
game.prop[TROLL] = TROLL_UNPAID;
|
||||||
move(TROLL2, 0);
|
move(TROLL2, 0);
|
||||||
move(TROLL2 + NOBJECTS, 0);
|
move(TROLL2 + NOBJECTS, 0);
|
||||||
|
@ -1006,7 +1006,7 @@ L2600:
|
||||||
* tick game.clock1 unless well into cave (and not at Y2). */
|
* tick game.clock1 unless well into cave (and not at Y2). */
|
||||||
if (game.closed) {
|
if (game.closed) {
|
||||||
if (game.prop[OYSTER] < 0 && TOTING(OYSTER))
|
if (game.prop[OYSTER] < 0 && TOTING(OYSTER))
|
||||||
pspeak(OYSTER, look, 1, true);
|
pspeak(OYSTER, look, 1, true);
|
||||||
for (size_t i = 1; i <= NOBJECTS; i++) {
|
for (size_t i = 1; i <= NOBJECTS; i++) {
|
||||||
if (TOTING(i) && game.prop[i] < 0)
|
if (TOTING(i) && game.prop[i] < 0)
|
||||||
game.prop[i] = -1 - game.prop[i];
|
game.prop[i] = -1 - game.prop[i];
|
||||||
|
|
12
misc.c
12
misc.c
|
@ -166,7 +166,7 @@ void vspeak(const char* msg, bool blank, va_list ap)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (blank == true)
|
if (blank == true)
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
||||||
int msglen = strlen(msg);
|
int msglen = strlen(msg);
|
||||||
|
|
||||||
|
@ -267,19 +267,19 @@ void pspeak(vocab_t msg, enum speaktype mode, int skip, bool blank, ...)
|
||||||
va_start(ap, blank);
|
va_start(ap, blank);
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case touch:
|
case touch:
|
||||||
vspeak(objects[msg].inventory, blank, ap);
|
vspeak(objects[msg].inventory, blank, ap);
|
||||||
break;
|
break;
|
||||||
case look:
|
case look:
|
||||||
vspeak(objects[msg].descriptions[skip], blank, ap);
|
vspeak(objects[msg].descriptions[skip], blank, ap);
|
||||||
break;
|
break;
|
||||||
case hear:
|
case hear:
|
||||||
vspeak(objects[msg].sounds[skip], blank, ap);
|
vspeak(objects[msg].sounds[skip], blank, ap);
|
||||||
break;
|
break;
|
||||||
case study:
|
case study:
|
||||||
vspeak(objects[msg].texts[skip], blank, ap);
|
vspeak(objects[msg].texts[skip], blank, ap);
|
||||||
break;
|
break;
|
||||||
case change:
|
case change:
|
||||||
vspeak(objects[msg].changes[skip], blank, ap);
|
vspeak(objects[msg].changes[skip], blank, ap);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue