Browse Source

add an enum for types of shrines

pull/4/head
Andrew Dunstan 8 years ago committed by Dennis Duda
parent
commit
50d3db3ec2
  1. 60
      Source/objects.cpp
  2. 8
      Source/objects.h
  3. 30
      enums.h

60
Source/objects.cpp

@ -293,7 +293,7 @@ char *ObjMasterLoadList[56] =
}; };
int bxadd[8] = { -1, 0, 1, -1, 1, -1, 0, 1 }; int bxadd[8] = { -1, 0, 1, -1, 1, -1, 0, 1 };
int byadd[8] = { -1, -1, -1, 0, 0, 1, 1, 1 }; int byadd[8] = { -1, -1, -1, 0, 0, 1, 1, 1 };
char *shrinestrs[26] = char *shrinestrs[NUM_SHRINETYPE] =
{ {
"Mysterious", "Mysterious",
"Hidden", "Hidden",
@ -322,20 +322,20 @@ char *shrinestrs[26] =
"Glimmering", "Glimmering",
"Tainted" "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, 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, 8, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 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 // 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, 1, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 2, 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; v7 = object[v3]._oVar1;
switch ( v7 ) switch ( v7 )
{ {
case 0: case SHRINE_MYSTERIOUS:
if ( !v5 && arglist == myplr ) if ( !v5 && arglist == myplr )
{ {
ModifyPlrStr(arglist, -1); ModifyPlrStr(arglist, -1);
@ -4987,7 +4987,7 @@ void __fastcall OperateShrine(int pnum, int i, int sType)
goto LABEL_221; goto LABEL_221;
} }
return; return;
case 1: case SHRINE_HIDDEN:
v12 = 0; v12 = 0;
if ( v5 || arglist != myplr ) if ( v5 || arglist != myplr )
return; return;
@ -5076,7 +5076,7 @@ void __fastcall OperateShrine(int pnum, int i, int sType)
LABEL_47: LABEL_47:
_LOBYTE(v7) = 13; _LOBYTE(v7) = 13;
goto LABEL_221; goto LABEL_221;
case 2: case SHRINE_GLOOMY:
if ( v5 ) if ( v5 )
return; return;
if ( arglist != myplr ) if ( arglist != myplr )
@ -5123,7 +5123,7 @@ LABEL_47:
goto LABEL_73; goto LABEL_73;
v7 = (int)&plr[v26].InvList[0]._iAC; v7 = (int)&plr[v26].InvList[0]._iAC;
break; break;
case 3: case SHRINE_WEIRD:
if ( v5 ) if ( v5 )
return; return;
if ( arglist != myplr ) if ( arglist != myplr )
@ -5151,8 +5151,8 @@ LABEL_47:
} }
_LOBYTE(v7) = 15; _LOBYTE(v7) = 15;
goto LABEL_221; goto LABEL_221;
case 4: case SHRINE_MAGICAL:
case 11: case SHRINE_MAGICAL2:
if ( v5 ) if ( v5 )
return; return;
AddMissile( AddMissile(
@ -5170,7 +5170,7 @@ LABEL_47:
return; return;
_LOBYTE(v7) = 16; _LOBYTE(v7) = 16;
goto LABEL_221; goto LABEL_221;
case 5: case SHRINE_STONE:
if ( v5 ) if ( v5 )
return; return;
if ( arglist != myplr ) if ( arglist != myplr )
@ -5211,7 +5211,7 @@ LABEL_47:
while ( v44 ); while ( v44 );
v7 = 17; v7 = 17;
goto LABEL_221; goto LABEL_221;
case 6: case SHRINE_RELIGIOUS:
if ( v5 ) if ( v5 )
return; return;
if ( arglist != myplr ) if ( arglist != myplr )
@ -5249,7 +5249,7 @@ LABEL_47:
while ( v51 ); while ( v51 );
v7 = 18; v7 = 18;
goto LABEL_221; goto LABEL_221;
case 7: case SHRINE_ENCHANTED:
if ( v5 || arglist != myplr ) if ( v5 || arglist != myplr )
return; return;
sfx_ida = 0; sfx_ida = 0;
@ -5302,7 +5302,7 @@ LABEL_47:
} }
_LOBYTE(v7) = 19; _LOBYTE(v7) = 19;
goto LABEL_221; goto LABEL_221;
case 8: case SHRINE_THAUMATURGIC:
for ( j = 0; j < nobjects; ++j ) for ( j = 0; j < nobjects; ++j )
{ {
v63 = objectactive[j]; v63 = objectactive[j];
@ -5322,7 +5322,7 @@ LABEL_47:
goto LABEL_280; goto LABEL_280;
_LOBYTE(v7) = 20; _LOBYTE(v7) = 20;
goto LABEL_221; goto LABEL_221;
case 9: case SHRINE_FASCINATING:
if ( v5 || arglist != myplr ) if ( v5 || arglist != myplr )
return; return;
v7 = 21720 * arglist; v7 = 21720 * arglist;
@ -5361,7 +5361,7 @@ LABEL_47:
} }
_LOBYTE(v7) = 21; _LOBYTE(v7) = 21;
goto LABEL_221; goto LABEL_221;
case 10: case SHRINE_CRYPTIC:
if ( v5 ) if ( v5 )
return; return;
v77 = arglist; v77 = arglist;
@ -5382,7 +5382,7 @@ LABEL_47:
plr[v77]._pMana = plr[v77]._pMaxMana; plr[v77]._pMana = plr[v77]._pMaxMana;
plr[v77]._pManaBase = plr[v77]._pMaxManaBase; plr[v77]._pManaBase = plr[v77]._pMaxManaBase;
goto LABEL_221; goto LABEL_221;
case 12: case SHRINE_ELDRITCH:
if ( v5 ) if ( v5 )
return; return;
if ( arglist != myplr ) if ( arglist != myplr )
@ -5458,14 +5458,14 @@ LABEL_47:
while ( !v56 ); while ( !v56 );
_LOBYTE(v7) = 24; _LOBYTE(v7) = 24;
goto LABEL_221; goto LABEL_221;
case 13: case SHRINE_EERIE:
if ( v5 || arglist != myplr ) if ( v5 || arglist != myplr )
return; return;
ModifyPlrMag(arglist, 2); ModifyPlrMag(arglist, 2);
CheckStats(arglist); CheckStats(arglist);
_LOBYTE(v7) = 25; _LOBYTE(v7) = 25;
goto LABEL_221; goto LABEL_221;
case 14: case SHRINE_DIVINE:
if ( v5 || arglist != myplr ) if ( v5 || arglist != myplr )
return; return;
v85 = object[v3]._ox; v85 = object[v3]._ox;
@ -5488,7 +5488,7 @@ LABEL_47:
plr[v87]._pHPBase = v7; plr[v87]._pHPBase = v7;
_LOBYTE(v7) = 26; _LOBYTE(v7) = 26;
goto LABEL_221; goto LABEL_221;
case 15: case SHRINE_HOLY:
if ( v5 ) if ( v5 )
return; return;
v88 = 0; v88 = 0;
@ -5518,7 +5518,7 @@ LABEL_47:
return; return;
_LOBYTE(v7) = 27; _LOBYTE(v7) = 27;
goto LABEL_221; goto LABEL_221;
case 16: case SHRINE_SACRED:
if ( v5 || arglist != myplr ) if ( v5 || arglist != myplr )
return; return;
v7 = 21720 * arglist; v7 = 21720 * arglist;
@ -5557,7 +5557,7 @@ LABEL_47:
} }
_LOBYTE(v7) = 28; _LOBYTE(v7) = 28;
goto LABEL_221; goto LABEL_221;
case 17: case SHRINE_SPIRITUAL:
if ( v5 || arglist != myplr ) if ( v5 || arglist != myplr )
return; return;
sfx_idd = 0; sfx_idd = 0;
@ -5582,7 +5582,7 @@ LABEL_47:
while ( sfx_idd < 40 ); while ( sfx_idd < 40 );
_LOBYTE(v7) = 29; _LOBYTE(v7) = 29;
goto LABEL_221; goto LABEL_221;
case 18: case SHRINE_SPOOKY:
if ( v5 ) if ( v5 )
return; return;
if ( arglist == myplr ) if ( arglist == myplr )
@ -5598,7 +5598,7 @@ LABEL_47:
plr[v110]._pMana = plr[v110]._pMaxMana; plr[v110]._pMana = plr[v110]._pMaxMana;
plr[v110]._pManaBase = plr[v110]._pMaxManaBase; plr[v110]._pManaBase = plr[v110]._pMaxManaBase;
goto LABEL_280; goto LABEL_280;
case 19: case SHRINE_ABANDONED:
if ( v5 || arglist != myplr ) if ( v5 || arglist != myplr )
return; return;
ModifyPlrDex(arglist, 2); ModifyPlrDex(arglist, 2);
@ -5607,7 +5607,7 @@ LABEL_47:
goto LABEL_280; goto LABEL_280;
_LOBYTE(v7) = 32; _LOBYTE(v7) = 32;
goto LABEL_221; goto LABEL_221;
case 20: case SHRINE_CREEPY:
if ( v5 || arglist != myplr ) if ( v5 || arglist != myplr )
return; return;
ModifyPlrStr(arglist, 2); ModifyPlrStr(arglist, 2);
@ -5616,7 +5616,7 @@ LABEL_47:
goto LABEL_280; goto LABEL_280;
_LOBYTE(v7) = 33; _LOBYTE(v7) = 33;
goto LABEL_221; goto LABEL_221;
case 21: case SHRINE_QUIET:
if ( v5 || arglist != myplr ) if ( v5 || arglist != myplr )
return; return;
ModifyPlrVit(arglist, 2); ModifyPlrVit(arglist, 2);
@ -5625,7 +5625,7 @@ LABEL_47:
goto LABEL_280; goto LABEL_280;
_LOBYTE(v7) = 34; _LOBYTE(v7) = 34;
goto LABEL_221; goto LABEL_221;
case 22: case SHRINE_SECLUDED:
if ( v5 ) if ( v5 )
return; return;
if ( arglist != myplr ) if ( arglist != myplr )
@ -5647,7 +5647,7 @@ LABEL_47:
while ( v7 < 40 ); while ( v7 < 40 );
_LOBYTE(v7) = 35; _LOBYTE(v7) = 35;
goto LABEL_221; goto LABEL_221;
case 23: case SHRINE_ORNATE:
if ( v5 || arglist != myplr ) if ( v5 || arglist != myplr )
return; return;
v7 = 21720 * arglist; v7 = 21720 * arglist;
@ -5686,7 +5686,7 @@ LABEL_47:
} }
_LOBYTE(v7) = 36; _LOBYTE(v7) = 36;
goto LABEL_221; goto LABEL_221;
case 24: case SHRINE_GLIMMERING:
if ( v5 || arglist != myplr ) if ( v5 || arglist != myplr )
return; return;
v125 = arglist; v125 = arglist;
@ -5725,7 +5725,7 @@ LABEL_47:
while ( v131 ); while ( v131 );
v7 = 37; v7 = 37;
goto LABEL_221; goto LABEL_221;
case 25: case SHRINE_TAINTED:
if ( v5 ) if ( v5 )
return; return;
if ( arglist == myplr ) if ( arglist == myplr )

8
Source/objects.h

@ -153,10 +153,10 @@ extern ObjDataStruct AllObjects[99];
extern char *ObjMasterLoadList[56]; extern char *ObjMasterLoadList[56];
extern int bxadd[8]; extern int bxadd[8];
extern int byadd[8]; extern int byadd[8];
extern char *shrinestrs[26]; extern char *shrinestrs[NUM_SHRINETYPE];
extern unsigned char shrinemin[26]; extern unsigned char shrinemin[NUM_SHRINETYPE];
extern unsigned char shrinemax[26]; extern unsigned char shrinemax[NUM_SHRINETYPE];
extern unsigned char shrineavail[26]; extern unsigned char shrineavail[NUM_SHRINETYPE];
extern char *StoryBookName[9]; extern char *StoryBookName[9];
extern int StoryText[3][3]; extern int StoryText[3][3];

30
enums.h

@ -2540,3 +2540,33 @@ enum player_graphic
// 0b1_0111_1111 // 0b1_0111_1111
PFILE_NONDEATH = 0x17F 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
};

Loading…
Cancel
Save