More SPK localization.
This commit is contained in:
parent
a101fc8679
commit
ac88b9c7e1
1 changed files with 39 additions and 34 deletions
73
actions.c
73
actions.c
|
@ -385,34 +385,37 @@ static int discard(token_t verb, long obj, bool just_do_it)
|
||||||
return(2012);
|
return(2012);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int drink(token_t obj)
|
static int drink(token_t verb, token_t obj)
|
||||||
/* Drink. If no object, assume water and look for it here. If water is in
|
/* Drink. If no object, assume water and look for it here. If water is in
|
||||||
* the bottle, drink that, else must be at a water loc, so drink stream. */
|
* the bottle, drink that, else must be at a water loc, so drink stream. */
|
||||||
{
|
{
|
||||||
|
int spk = ACTSPK[verb];
|
||||||
if (obj == 0 && LIQLOC(game.loc) != WATER && (LIQUID() != WATER || !HERE(BOTTLE)))
|
if (obj == 0 && LIQLOC(game.loc) != WATER && (LIQUID() != WATER || !HERE(BOTTLE)))
|
||||||
return(8000);
|
return(8000);
|
||||||
if (obj != BLOOD) {
|
if (obj != BLOOD) {
|
||||||
if (obj != 0 && obj != WATER)SPK=110;
|
if (obj != 0 && obj != WATER)spk=110;
|
||||||
if (SPK == 110 || LIQUID() != WATER || !HERE(BOTTLE)) {RSPEAK(SPK); return 2012;}
|
if (spk == 110 || LIQUID() != WATER || !HERE(BOTTLE)) {
|
||||||
|
RSPEAK(spk);
|
||||||
|
return 2012;
|
||||||
|
}
|
||||||
game.prop[BOTTLE]=1;
|
game.prop[BOTTLE]=1;
|
||||||
game.place[WATER]=0;
|
game.place[WATER]=0;
|
||||||
SPK=74;
|
spk=74;
|
||||||
RSPEAK(SPK);
|
|
||||||
return 2012;
|
|
||||||
} else {
|
} else {
|
||||||
DSTROY(BLOOD);
|
DSTROY(BLOOD);
|
||||||
game.prop[DRAGON]=2;
|
game.prop[DRAGON]=2;
|
||||||
OBJSND[BIRD]=OBJSND[BIRD]+3;
|
OBJSND[BIRD]=OBJSND[BIRD]+3;
|
||||||
SPK=240;
|
spk=240;
|
||||||
RSPEAK(SPK);
|
}
|
||||||
|
RSPEAK(spk);
|
||||||
return 2012;
|
return 2012;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
static int eat(token_t obj)
|
static int eat(token_t verb, token_t obj)
|
||||||
/* Eat. Intransitive: assume food if present, else ask what. Transitive: food
|
/* Eat. Intransitive: assume food if present, else ask what. Transitive: food
|
||||||
* ok, some things lose appetite, rest are ridiculous. */
|
* ok, some things lose appetite, rest are ridiculous. */
|
||||||
{
|
{
|
||||||
|
int spk = ACTSPK[verb];
|
||||||
if (obj == INTRANSITIVE) {
|
if (obj == INTRANSITIVE) {
|
||||||
if (!HERE(FOOD))
|
if (!HERE(FOOD))
|
||||||
return(8000);
|
return(8000);
|
||||||
|
@ -431,9 +434,10 @@ static int eat(token_t obj)
|
||||||
return 2012;
|
return 2012;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int extinguish(int obj)
|
static int extinguish(token_t verb, int obj)
|
||||||
/* Extinguish. Lamp, urn, dragon/volcano (nice try). */
|
/* Extinguish. Lamp, urn, dragon/volcano (nice try). */
|
||||||
{
|
{
|
||||||
|
int spk = ACTSPK[verb];
|
||||||
if (obj == INTRANSITIVE) {
|
if (obj == INTRANSITIVE) {
|
||||||
if (HERE(LAMP) && game.prop[LAMP] == 1)obj=LAMP;
|
if (HERE(LAMP) && game.prop[LAMP] == 1)obj=LAMP;
|
||||||
if (HERE(URN) && game.prop[URN] == 2)obj=obj*NOBJECTS+URN;
|
if (HERE(URN) && game.prop[URN] == 2)obj=obj*NOBJECTS+URN;
|
||||||
|
@ -442,8 +446,8 @@ static int extinguish(int obj)
|
||||||
|
|
||||||
if (obj == URN) {
|
if (obj == URN) {
|
||||||
game.prop[URN]=game.prop[URN]/2;
|
game.prop[URN]=game.prop[URN]/2;
|
||||||
SPK=210;
|
spk=210;
|
||||||
RSPEAK(SPK);
|
RSPEAK(spk);
|
||||||
return 2012;
|
return 2012;
|
||||||
}
|
}
|
||||||
else if (obj == LAMP) {
|
else if (obj == LAMP) {
|
||||||
|
@ -454,15 +458,16 @@ static int extinguish(int obj)
|
||||||
return(2012);
|
return(2012);
|
||||||
}
|
}
|
||||||
else if (obj == DRAGON || obj == VOLCAN)
|
else if (obj == DRAGON || obj == VOLCAN)
|
||||||
SPK=146;
|
spk=146;
|
||||||
RSPEAK(SPK);
|
RSPEAK(spk);
|
||||||
return 2012;
|
return 2012;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int feed(long obj)
|
static int feed(token_t verb, long obj)
|
||||||
/* Feed. If bird, no seed. Snake, dragon, troll: quip. If dwarf, make him
|
/* Feed. If bird, no seed. Snake, dragon, troll: quip. If dwarf, make him
|
||||||
* mad. Bear, special. */
|
* mad. Bear, special. */
|
||||||
{
|
{
|
||||||
|
int spk = ACTSPK[verb];
|
||||||
if (obj == BIRD) {
|
if (obj == BIRD) {
|
||||||
RSPEAK(100);
|
RSPEAK(100);
|
||||||
return 2012;
|
return 2012;
|
||||||
|
@ -486,7 +491,7 @@ static int feed(long obj)
|
||||||
if (obj == DWARF) {
|
if (obj == DWARF) {
|
||||||
if (!HERE(FOOD))
|
if (!HERE(FOOD))
|
||||||
{
|
{
|
||||||
RSPEAK(SPK); /* FIXME: Defaults from ACTSPK */
|
RSPEAK(spk);
|
||||||
return 2012;
|
return 2012;
|
||||||
}
|
}
|
||||||
game.dflag=game.dflag+2;
|
game.dflag=game.dflag+2;
|
||||||
|
@ -495,30 +500,30 @@ static int feed(long obj)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (obj == BEAR) {
|
if (obj == BEAR) {
|
||||||
if (game.prop[BEAR] == 0)SPK=102;
|
if (game.prop[BEAR] == 0)spk=102;
|
||||||
if (game.prop[BEAR] == 3)SPK=110;
|
if (game.prop[BEAR] == 3)spk=110;
|
||||||
if (!HERE(FOOD)) {
|
if (!HERE(FOOD)) {
|
||||||
RSPEAK(SPK);
|
RSPEAK(spk);
|
||||||
return 2012;
|
return 2012;
|
||||||
}
|
}
|
||||||
DSTROY(FOOD);
|
DSTROY(FOOD);
|
||||||
game.prop[BEAR]=1;
|
game.prop[BEAR]=1;
|
||||||
game.fixed[AXE]=0;
|
game.fixed[AXE]=0;
|
||||||
game.prop[AXE]=0;
|
game.prop[AXE]=0;
|
||||||
SPK=168;
|
spk=168;
|
||||||
RSPEAK(SPK);
|
RSPEAK(spk);
|
||||||
return 2012;
|
return 2012;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (obj == OGRE) {
|
if (obj == OGRE) {
|
||||||
if (HERE(FOOD))
|
if (HERE(FOOD))
|
||||||
SPK=202;
|
spk=202;
|
||||||
RSPEAK(SPK);
|
RSPEAK(spk);
|
||||||
return 2012;
|
return 2012;
|
||||||
}
|
}
|
||||||
|
|
||||||
SPK=14;
|
spk=14;
|
||||||
RSPEAK(SPK);
|
RSPEAK(spk);
|
||||||
return 2012;
|
return 2012;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -894,7 +899,7 @@ static int throw(FILE *cmdin, long verb, long obj)
|
||||||
if (obj == FOOD && HERE(BEAR)) {
|
if (obj == FOOD && HERE(BEAR)) {
|
||||||
/* But throwing food is another story. */
|
/* But throwing food is another story. */
|
||||||
obj=BEAR;
|
obj=BEAR;
|
||||||
return(feed(obj));
|
return(feed(verb, obj));
|
||||||
}
|
}
|
||||||
if (obj != AXE)
|
if (obj != AXE)
|
||||||
return(discard(verb, obj, false));
|
return(discard(verb, obj, false));
|
||||||
|
@ -1060,14 +1065,14 @@ int action(FILE *input, enum speechpart part, long verb, long obj)
|
||||||
case 4: /* NOTHI */ {RSPEAK(54); return(20012);}
|
case 4: /* NOTHI */ {RSPEAK(54); return(20012);}
|
||||||
case 5: /* LOCK */ return lock(verb, INTRANSITIVE);
|
case 5: /* LOCK */ return lock(verb, INTRANSITIVE);
|
||||||
case 6: /* LIGHT */ return light(INTRANSITIVE);
|
case 6: /* LIGHT */ return light(INTRANSITIVE);
|
||||||
case 7: /* EXTIN */ return extinguish(INTRANSITIVE);
|
case 7: /* EXTIN */ return extinguish(verb, INTRANSITIVE);
|
||||||
case 8: /* WAVE */ return(8000);
|
case 8: /* WAVE */ return(8000);
|
||||||
case 9: /* CALM */ return(8000);
|
case 9: /* CALM */ return(8000);
|
||||||
case 10: /* WALK */ {RSPEAK(SPK); return 2012;}
|
case 10: /* WALK */ {RSPEAK(SPK); return 2012;}
|
||||||
case 11: /* ATTAC */ return attack(input, verb, obj);
|
case 11: /* ATTAC */ return attack(input, verb, obj);
|
||||||
case 12: /* POUR */ return pour(verb, obj);
|
case 12: /* POUR */ return pour(verb, obj);
|
||||||
case 13: /* EAT */ return eat(INTRANSITIVE);
|
case 13: /* EAT */ return eat(verb, INTRANSITIVE);
|
||||||
case 14: /* DRINK */ return drink(obj);
|
case 14: /* DRINK */ return drink(verb, obj);
|
||||||
case 15: /* RUB */ return(8000);
|
case 15: /* RUB */ return(8000);
|
||||||
case 16: /* TOSS */ return(8000);
|
case 16: /* TOSS */ return(8000);
|
||||||
case 17: /* QUIT */ return quit(input);
|
case 17: /* QUIT */ return quit(input);
|
||||||
|
@ -1101,20 +1106,20 @@ int action(FILE *input, enum speechpart part, long verb, long obj)
|
||||||
case 4: /* NOTHI */ {RSPEAK(54); return(20012);}
|
case 4: /* NOTHI */ {RSPEAK(54); return(20012);}
|
||||||
case 5: /* LOCK */ return lock(verb, obj);
|
case 5: /* LOCK */ return lock(verb, obj);
|
||||||
case 6: /* LIGHT */ return light(obj);
|
case 6: /* LIGHT */ return light(obj);
|
||||||
case 7: /* EXTI */ return extinguish(obj);
|
case 7: /* EXTI */ return extinguish(verb, obj);
|
||||||
case 8: /* WAVE */ return wave(obj);
|
case 8: /* WAVE */ return wave(obj);
|
||||||
case 9: /* CALM */ {RSPEAK(SPK); return 2012;}
|
case 9: /* CALM */ {RSPEAK(SPK); return 2012;}
|
||||||
case 10: /* WALK */ {RSPEAK(SPK); return 2012;}
|
case 10: /* WALK */ {RSPEAK(SPK); return 2012;}
|
||||||
case 11: /* ATTAC */ return attack(input, verb, obj);
|
case 11: /* ATTAC */ return attack(input, verb, obj);
|
||||||
case 12: /* POUR */ return pour(verb, obj);
|
case 12: /* POUR */ return pour(verb, obj);
|
||||||
case 13: /* EAT */ return eat(obj);
|
case 13: /* EAT */ return eat(verb, obj);
|
||||||
case 14: /* DRINK */ return drink(obj);
|
case 14: /* DRINK */ return drink(verb, obj);
|
||||||
case 15: /* RUB */ return rub(obj);
|
case 15: /* RUB */ return rub(obj);
|
||||||
case 16: /* TOSS */ return throw(input, verb, obj);
|
case 16: /* TOSS */ return throw(input, verb, obj);
|
||||||
case 17: /* QUIT */ {RSPEAK(SPK); return 2012;}
|
case 17: /* QUIT */ {RSPEAK(SPK); return 2012;}
|
||||||
case 18: /* FIND */ return find(obj);
|
case 18: /* FIND */ return find(obj);
|
||||||
case 19: /* INVEN */ return find(obj);
|
case 19: /* INVEN */ return find(obj);
|
||||||
case 20: /* FEED */ return feed(obj);
|
case 20: /* FEED */ return feed(verb, obj);
|
||||||
case 21: /* FILL */ return fill(verb, obj);
|
case 21: /* FILL */ return fill(verb, obj);
|
||||||
case 22: /* BLAST */ return blast();
|
case 22: /* BLAST */ return blast();
|
||||||
case 23: /* SCOR */ {RSPEAK(SPK); return 2012;}
|
case 23: /* SCOR */ {RSPEAK(SPK); return 2012;}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue