From d2424771e3bb58f07de7fe611a0f8a598d57acb1 Mon Sep 17 00:00:00 2001 From: Peje Nilsson Date: Thu, 8 Jun 2017 12:15:02 +0200 Subject: [PATCH] Reduce gotos & labels --- actions2.c | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/actions2.c b/actions2.c index 57b06ce..172c879 100644 --- a/actions2.c +++ b/actions2.c @@ -140,30 +140,32 @@ L9028: game.prop[VASE]=2; int attack(FILE *input, long obj, long verb) { I=ATDWRF(game.loc); - if (obj != 0) goto L9124; - if (I > 0)obj=DWARF; - if (HERE(SNAKE))obj=obj*NOBJECTS+SNAKE; - if (AT(DRAGON) && game.prop[DRAGON] == 0)obj=obj*NOBJECTS+DRAGON; - if (AT(TROLL))obj=obj*NOBJECTS+TROLL; - if (AT(OGRE))obj=obj*NOBJECTS+OGRE; - if (HERE(BEAR) && game.prop[BEAR] == 0)obj=obj*NOBJECTS+BEAR; - if (obj > NOBJECTS) return(8000); - if (obj != 0) goto L9124; - /* Can't attack bird or machine by throwing axe. */ - if (HERE(BIRD) && verb != THROW)obj=BIRD; - if (HERE(VEND) && verb != THROW)obj=obj*NOBJECTS+VEND; - /* Clam and oyster both treated as clam for intransitive case; - * no harm done. */ - if (HERE(CLAM) || HERE(OYSTER))obj=NOBJECTS*obj+CLAM; - if (obj > NOBJECTS) return(8000); -L9124: if (obj == BIRD) { + if (obj == 0) { + if (I > 0)obj=DWARF; + if (HERE(SNAKE))obj=obj*NOBJECTS+SNAKE; + if (AT(DRAGON) && game.prop[DRAGON] == 0)obj=obj*NOBJECTS+DRAGON; + if (AT(TROLL))obj=obj*NOBJECTS+TROLL; + if (AT(OGRE))obj=obj*NOBJECTS+OGRE; + if (HERE(BEAR) && game.prop[BEAR] == 0)obj=obj*NOBJECTS+BEAR; + if (obj > NOBJECTS) return(8000); + if (obj == 0) { + /* Can't attack bird or machine by throwing axe. */ + if (HERE(BIRD) && verb != THROW)obj=BIRD; + if (HERE(VEND) && verb != THROW)obj=obj*NOBJECTS+VEND; + /* Clam and oyster both treated as clam for intransitive case; + * no harm done. */ + if (HERE(CLAM) || HERE(OYSTER))obj=NOBJECTS*obj+CLAM; + if (obj > NOBJECTS) return(8000); + } + } + if (obj == BIRD) { SPK=137; if (game.closed) return(2011); DSTROY(BIRD); game.prop[BIRD]=0; SPK=45; } -L9125: if (obj == VEND) { + if (obj == VEND) { PSPEAK(VEND,game.prop[VEND]+2); game.prop[VEND]=3-game.prop[VEND]; return(2012);