From 50d3db3ec22cd4fb2a95cad1fa950ed550b41fcb Mon Sep 17 00:00:00 2001 From: Andrew Dunstan Date: Wed, 12 Sep 2018 17:24:41 +1000 Subject: [PATCH] add an enum for types of shrines --- Source/objects.cpp | 60 +++++++++++++++++++++++----------------------- Source/objects.h | 8 +++---- enums.h | 30 +++++++++++++++++++++++ 3 files changed, 64 insertions(+), 34 deletions(-) diff --git a/Source/objects.cpp b/Source/objects.cpp index 02fa35fad..3a1a6885b 100644 --- a/Source/objects.cpp +++ b/Source/objects.cpp @@ -293,7 +293,7 @@ char *ObjMasterLoadList[56] = }; int bxadd[8] = { -1, 0, 1, -1, 1, -1, 0, 1 }; int byadd[8] = { -1, -1, -1, 0, 0, 1, 1, 1 }; -char *shrinestrs[26] = +char *shrinestrs[NUM_SHRINETYPE] = { "Mysterious", "Hidden", @@ -322,20 +322,20 @@ char *shrinestrs[26] = "Glimmering", "Tainted" }; -unsigned char shrinemin[26] = +unsigned char shrinemin[NUM_SHRINETYPE] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; -unsigned char shrinemax[26] = +unsigned char shrinemax[NUM_SHRINETYPE] = { 16, 16, 16, 16, 16, 16, 16, 8, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 }; // 0 - sp+mp, 1 - sp only, 2 - mp only -unsigned char shrineavail[26] = +unsigned char shrineavail[NUM_SHRINETYPE] = { 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, @@ -4949,7 +4949,7 @@ void __fastcall OperateShrine(int pnum, int i, int sType) v7 = object[v3]._oVar1; switch ( v7 ) { - case 0: + case SHRINE_MYSTERIOUS: if ( !v5 && arglist == myplr ) { ModifyPlrStr(arglist, -1); @@ -4987,7 +4987,7 @@ void __fastcall OperateShrine(int pnum, int i, int sType) goto LABEL_221; } return; - case 1: + case SHRINE_HIDDEN: v12 = 0; if ( v5 || arglist != myplr ) return; @@ -5076,7 +5076,7 @@ void __fastcall OperateShrine(int pnum, int i, int sType) LABEL_47: _LOBYTE(v7) = 13; goto LABEL_221; - case 2: + case SHRINE_GLOOMY: if ( v5 ) return; if ( arglist != myplr ) @@ -5123,7 +5123,7 @@ LABEL_47: goto LABEL_73; v7 = (int)&plr[v26].InvList[0]._iAC; break; - case 3: + case SHRINE_WEIRD: if ( v5 ) return; if ( arglist != myplr ) @@ -5151,8 +5151,8 @@ LABEL_47: } _LOBYTE(v7) = 15; goto LABEL_221; - case 4: - case 11: + case SHRINE_MAGICAL: + case SHRINE_MAGICAL2: if ( v5 ) return; AddMissile( @@ -5170,7 +5170,7 @@ LABEL_47: return; _LOBYTE(v7) = 16; goto LABEL_221; - case 5: + case SHRINE_STONE: if ( v5 ) return; if ( arglist != myplr ) @@ -5211,7 +5211,7 @@ LABEL_47: while ( v44 ); v7 = 17; goto LABEL_221; - case 6: + case SHRINE_RELIGIOUS: if ( v5 ) return; if ( arglist != myplr ) @@ -5249,7 +5249,7 @@ LABEL_47: while ( v51 ); v7 = 18; goto LABEL_221; - case 7: + case SHRINE_ENCHANTED: if ( v5 || arglist != myplr ) return; sfx_ida = 0; @@ -5302,7 +5302,7 @@ LABEL_47: } _LOBYTE(v7) = 19; goto LABEL_221; - case 8: + case SHRINE_THAUMATURGIC: for ( j = 0; j < nobjects; ++j ) { v63 = objectactive[j]; @@ -5322,7 +5322,7 @@ LABEL_47: goto LABEL_280; _LOBYTE(v7) = 20; goto LABEL_221; - case 9: + case SHRINE_FASCINATING: if ( v5 || arglist != myplr ) return; v7 = 21720 * arglist; @@ -5361,7 +5361,7 @@ LABEL_47: } _LOBYTE(v7) = 21; goto LABEL_221; - case 10: + case SHRINE_CRYPTIC: if ( v5 ) return; v77 = arglist; @@ -5382,7 +5382,7 @@ LABEL_47: plr[v77]._pMana = plr[v77]._pMaxMana; plr[v77]._pManaBase = plr[v77]._pMaxManaBase; goto LABEL_221; - case 12: + case SHRINE_ELDRITCH: if ( v5 ) return; if ( arglist != myplr ) @@ -5458,14 +5458,14 @@ LABEL_47: while ( !v56 ); _LOBYTE(v7) = 24; goto LABEL_221; - case 13: + case SHRINE_EERIE: if ( v5 || arglist != myplr ) return; ModifyPlrMag(arglist, 2); CheckStats(arglist); _LOBYTE(v7) = 25; goto LABEL_221; - case 14: + case SHRINE_DIVINE: if ( v5 || arglist != myplr ) return; v85 = object[v3]._ox; @@ -5488,7 +5488,7 @@ LABEL_47: plr[v87]._pHPBase = v7; _LOBYTE(v7) = 26; goto LABEL_221; - case 15: + case SHRINE_HOLY: if ( v5 ) return; v88 = 0; @@ -5518,7 +5518,7 @@ LABEL_47: return; _LOBYTE(v7) = 27; goto LABEL_221; - case 16: + case SHRINE_SACRED: if ( v5 || arglist != myplr ) return; v7 = 21720 * arglist; @@ -5557,7 +5557,7 @@ LABEL_47: } _LOBYTE(v7) = 28; goto LABEL_221; - case 17: + case SHRINE_SPIRITUAL: if ( v5 || arglist != myplr ) return; sfx_idd = 0; @@ -5582,7 +5582,7 @@ LABEL_47: while ( sfx_idd < 40 ); _LOBYTE(v7) = 29; goto LABEL_221; - case 18: + case SHRINE_SPOOKY: if ( v5 ) return; if ( arglist == myplr ) @@ -5598,7 +5598,7 @@ LABEL_47: plr[v110]._pMana = plr[v110]._pMaxMana; plr[v110]._pManaBase = plr[v110]._pMaxManaBase; goto LABEL_280; - case 19: + case SHRINE_ABANDONED: if ( v5 || arglist != myplr ) return; ModifyPlrDex(arglist, 2); @@ -5607,7 +5607,7 @@ LABEL_47: goto LABEL_280; _LOBYTE(v7) = 32; goto LABEL_221; - case 20: + case SHRINE_CREEPY: if ( v5 || arglist != myplr ) return; ModifyPlrStr(arglist, 2); @@ -5616,7 +5616,7 @@ LABEL_47: goto LABEL_280; _LOBYTE(v7) = 33; goto LABEL_221; - case 21: + case SHRINE_QUIET: if ( v5 || arglist != myplr ) return; ModifyPlrVit(arglist, 2); @@ -5625,7 +5625,7 @@ LABEL_47: goto LABEL_280; _LOBYTE(v7) = 34; goto LABEL_221; - case 22: + case SHRINE_SECLUDED: if ( v5 ) return; if ( arglist != myplr ) @@ -5647,7 +5647,7 @@ LABEL_47: while ( v7 < 40 ); _LOBYTE(v7) = 35; goto LABEL_221; - case 23: + case SHRINE_ORNATE: if ( v5 || arglist != myplr ) return; v7 = 21720 * arglist; @@ -5686,7 +5686,7 @@ LABEL_47: } _LOBYTE(v7) = 36; goto LABEL_221; - case 24: + case SHRINE_GLIMMERING: if ( v5 || arglist != myplr ) return; v125 = arglist; @@ -5725,7 +5725,7 @@ LABEL_47: while ( v131 ); v7 = 37; goto LABEL_221; - case 25: + case SHRINE_TAINTED: if ( v5 ) return; if ( arglist == myplr ) diff --git a/Source/objects.h b/Source/objects.h index 79464a40e..3fb9f29eb 100644 --- a/Source/objects.h +++ b/Source/objects.h @@ -153,10 +153,10 @@ extern ObjDataStruct AllObjects[99]; extern char *ObjMasterLoadList[56]; extern int bxadd[8]; extern int byadd[8]; -extern char *shrinestrs[26]; -extern unsigned char shrinemin[26]; -extern unsigned char shrinemax[26]; -extern unsigned char shrineavail[26]; +extern char *shrinestrs[NUM_SHRINETYPE]; +extern unsigned char shrinemin[NUM_SHRINETYPE]; +extern unsigned char shrinemax[NUM_SHRINETYPE]; +extern unsigned char shrineavail[NUM_SHRINETYPE]; extern char *StoryBookName[9]; extern int StoryText[3][3]; diff --git a/enums.h b/enums.h index aaf8ee1b5..4178f28b8 100644 --- a/enums.h +++ b/enums.h @@ -2540,3 +2540,33 @@ enum player_graphic // 0b1_0111_1111 PFILE_NONDEATH = 0x17F }; + +enum shrine_type { + SHRINE_MYSTERIOUS = 0, + SHRINE_HIDDEN = 1, + SHRINE_GLOOMY = 2, + SHRINE_WEIRD = 3, + SHRINE_MAGICAL = 4, + SHRINE_STONE = 5, + SHRINE_RELIGIOUS = 6, + SHRINE_ENCHANTED = 7, + SHRINE_THAUMATURGIC = 8, + SHRINE_FASCINATING = 9, + SHRINE_CRYPTIC = 10, + SHRINE_MAGICAL2 = 11, + SHRINE_ELDRITCH = 12, + SHRINE_EERIE = 13, + SHRINE_DIVINE = 14, + SHRINE_HOLY = 15, + SHRINE_SACRED = 16, + SHRINE_SPIRITUAL = 17, + SHRINE_SPOOKY = 18, + SHRINE_ABANDONED = 19, + SHRINE_CREEPY = 20, + SHRINE_QUIET = 21, + SHRINE_SECLUDED = 22, + SHRINE_ORNATE = 23, + SHRINE_GLIMMERING = 24, + SHRINE_TAINTED = 25, + NUM_SHRINETYPE +};