♻️ Clean up InitCutscene
This commit is contained in:
parent
0f7b2682b2
commit
a69a76941e
14 changed files with 154 additions and 229 deletions
|
|
@ -14,7 +14,7 @@ DEVILUTION_BEGIN_NAMESPACE
|
|||
|
||||
SDL_Window *ghMainWnd;
|
||||
DWORD glSeedTbl[NUMLEVELS];
|
||||
int gnLevelTypeTbl[NUMLEVELS];
|
||||
dungeon_type gnLevelTypeTbl[NUMLEVELS];
|
||||
int glEndSeed[NUMLEVELS];
|
||||
int glMid1Seed[NUMLEVELS];
|
||||
int glMid2Seed[NUMLEVELS];
|
||||
|
|
@ -175,7 +175,7 @@ static void diablo_parse_flags(int argc, char **argv)
|
|||
} else if (strcasecmp("-l", argv[i]) == 0) {
|
||||
setlevel = FALSE;
|
||||
leveldebug = true;
|
||||
leveltype = SDL_atoi(argv[++i]);
|
||||
leveltype = (dungeon_type)SDL_atoi(argv[++i]);
|
||||
currlevel = SDL_atoi(argv[++i]);
|
||||
plr[0].plrlevel = currlevel;
|
||||
} else if (strcasecmp("-m", argv[i]) == 0) {
|
||||
|
|
@ -219,7 +219,7 @@ void FreeGameMem()
|
|||
FreeTownerGFX();
|
||||
}
|
||||
|
||||
static void start_game(unsigned int uMsg)
|
||||
static void start_game(interface_mode uMsg)
|
||||
{
|
||||
zoomflag = TRUE;
|
||||
CalcViewportGeometry();
|
||||
|
|
@ -291,7 +291,7 @@ static bool ProcessInput()
|
|||
return true;
|
||||
}
|
||||
|
||||
static void run_game_loop(unsigned int uMsg)
|
||||
static void run_game_loop(interface_mode uMsg)
|
||||
{
|
||||
WNDPROC saveProc;
|
||||
MSG msg;
|
||||
|
|
@ -361,7 +361,6 @@ static void run_game_loop(unsigned int uMsg)
|
|||
BOOL StartGame(BOOL bNewGame, BOOL bSinglePlayer)
|
||||
{
|
||||
BOOL fExitProgram;
|
||||
unsigned int uMsg;
|
||||
|
||||
gbSelectProvider = TRUE;
|
||||
|
||||
|
|
@ -382,9 +381,8 @@ BOOL StartGame(BOOL bNewGame, BOOL bSinglePlayer)
|
|||
InitPortals();
|
||||
InitDungMsgs(myplr);
|
||||
}
|
||||
if (!gbValidSaveFile || !gbLoadGame) {
|
||||
uMsg = WM_DIABNEWGAME;
|
||||
} else {
|
||||
interface_mode uMsg = WM_DIABNEWGAME;
|
||||
if (gbValidSaveFile && gbLoadGame) {
|
||||
uMsg = WM_DIABLOADGAME;
|
||||
}
|
||||
run_game_loop(uMsg);
|
||||
|
|
@ -1591,7 +1589,7 @@ void GM_Game(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
music_stop();
|
||||
track_repeat_walk(FALSE);
|
||||
sgbMouseDown = CLICK_NONE;
|
||||
ShowProgress(uMsg);
|
||||
ShowProgress((interface_mode)uMsg);
|
||||
force_redraw = 255;
|
||||
DrawAndBlit();
|
||||
LoadPWaterPalette();
|
||||
|
|
|
|||
|
|
@ -155,7 +155,7 @@ typedef struct Options {
|
|||
|
||||
extern SDL_Window *ghMainWnd;
|
||||
extern DWORD glSeedTbl[NUMLEVELS];
|
||||
extern int gnLevelTypeTbl[NUMLEVELS];
|
||||
extern dungeon_type gnLevelTypeTbl[NUMLEVELS];
|
||||
extern int MouseX;
|
||||
extern int MouseY;
|
||||
extern BOOL gbRunGame;
|
||||
|
|
|
|||
|
|
@ -60,13 +60,14 @@ int dmaxx;
|
|||
int dmaxy;
|
||||
int gnDifficulty;
|
||||
/** Specifies the active dungeon type of the current game. */
|
||||
BYTE leveltype;
|
||||
dungeon_type leveltype;
|
||||
/** Specifies the active dungeon level of the current game. */
|
||||
BYTE currlevel;
|
||||
BOOLEAN setlevel;
|
||||
/** Specifies the active quest level of the current game. */
|
||||
BYTE setlvlnum;
|
||||
char setlvltype;
|
||||
/** Level type of the active quest level */
|
||||
dungeon_type setlvltype;
|
||||
/** Specifies the player viewpoint X-coordinate of the map. */
|
||||
int ViewX;
|
||||
/** Specifies the player viewpoint Y-coordinate of the map. */
|
||||
|
|
|
|||
|
|
@ -56,11 +56,11 @@ extern int dminy;
|
|||
extern int dmaxx;
|
||||
extern int dmaxy;
|
||||
extern int gnDifficulty;
|
||||
extern BYTE leveltype;
|
||||
extern dungeon_type leveltype;
|
||||
extern BYTE currlevel;
|
||||
extern BOOLEAN setlevel;
|
||||
extern BYTE setlvlnum;
|
||||
extern char setlvltype;
|
||||
extern dungeon_type setlvltype;
|
||||
extern int ViewX;
|
||||
extern int ViewY;
|
||||
extern int ViewBX;
|
||||
|
|
|
|||
|
|
@ -21,212 +21,128 @@ static void FreeInterface()
|
|||
MemFreeDbg(sgpBackCel);
|
||||
}
|
||||
|
||||
static void InitCutscene(unsigned int uMsg)
|
||||
static Cutseens PickCutscene(interface_mode uMsg)
|
||||
{
|
||||
assert(!sgpBackCel);
|
||||
|
||||
switch (uMsg) {
|
||||
case WM_DIABNEXTLVL:
|
||||
switch (gnLevelTypeTbl[currlevel]) {
|
||||
case DTYPE_TOWN:
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cuttt.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cuttt.pal");
|
||||
progress_id = 1;
|
||||
break;
|
||||
case DTYPE_CATHEDRAL:
|
||||
if (currlevel < 17) {
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cutl1d.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cutl1d.pal");
|
||||
progress_id = 0;
|
||||
} else {
|
||||
sgpBackCel = LoadFileInMem("Nlevels\\cutl5.CEL", NULL);
|
||||
LoadPalette("Nlevels\\cutl5.pal");
|
||||
progress_id = 1;
|
||||
}
|
||||
break;
|
||||
case DTYPE_CATACOMBS:
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cut2.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cut2.pal");
|
||||
progress_id = 2;
|
||||
break;
|
||||
case DTYPE_CAVES:
|
||||
if (currlevel < 17) {
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cut3.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cut3.pal");
|
||||
progress_id = 1;
|
||||
} else {
|
||||
sgpBackCel = LoadFileInMem("Nlevels\\cutl6.CEL", NULL);
|
||||
LoadPalette("Nlevels\\cutl6.pal");
|
||||
progress_id = 1;
|
||||
}
|
||||
break;
|
||||
case DTYPE_HELL:
|
||||
if (currlevel < 15) {
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cut4.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cut4.pal");
|
||||
progress_id = 1;
|
||||
} else {
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cutgate.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cutgate.pal");
|
||||
progress_id = 1;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cutl1d.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cutl1d.pal");
|
||||
progress_id = 0;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case WM_DIABPREVLVL:
|
||||
if (gnLevelTypeTbl[currlevel - 1] == 0) {
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cuttt.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cuttt.pal");
|
||||
progress_id = 1;
|
||||
} else {
|
||||
switch (gnLevelTypeTbl[currlevel]) {
|
||||
case DTYPE_TOWN:
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cuttt.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cuttt.pal");
|
||||
progress_id = 1;
|
||||
break;
|
||||
case DTYPE_CATHEDRAL:
|
||||
if (currlevel < 17) {
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cutl1d.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cutl1d.pal");
|
||||
progress_id = 0;
|
||||
} else {
|
||||
sgpBackCel = LoadFileInMem("Nlevels\\cutl5.CEL", NULL);
|
||||
LoadPalette("Nlevels\\cutl5.pal");
|
||||
progress_id = 1;
|
||||
}
|
||||
break;
|
||||
case DTYPE_CATACOMBS:
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cut2.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cut2.pal");
|
||||
progress_id = 2;
|
||||
break;
|
||||
case DTYPE_CAVES:
|
||||
if (currlevel < 17) {
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cut3.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cut3.pal");
|
||||
progress_id = 1;
|
||||
} else {
|
||||
sgpBackCel = LoadFileInMem("Nlevels\\cutl6.CEL", NULL);
|
||||
LoadPalette("Nlevels\\cutl6.pal");
|
||||
progress_id = 1;
|
||||
}
|
||||
break;
|
||||
case DTYPE_HELL:
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cut4.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cut4.pal");
|
||||
progress_id = 1;
|
||||
break;
|
||||
default:
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cutl1d.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cutl1d.pal");
|
||||
progress_id = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case WM_DIABSETLVL:
|
||||
if (setlvlnum == SL_BONECHAMB) {
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cut2.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cut2.pal");
|
||||
progress_id = 2;
|
||||
} else if (setlvlnum == SL_VILEBETRAYER) {
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cutportr.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cutportr.pal");
|
||||
progress_id = 1;
|
||||
} else {
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cutl1d.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cutl1d.pal");
|
||||
progress_id = 0;
|
||||
}
|
||||
break;
|
||||
case WM_DIABRTNLVL:
|
||||
if (setlvlnum == SL_BONECHAMB) {
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cut2.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cut2.pal");
|
||||
progress_id = 2;
|
||||
} else if (setlvlnum == SL_VILEBETRAYER) {
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cutportr.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cutportr.pal");
|
||||
progress_id = 1;
|
||||
} else {
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cutl1d.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cutl1d.pal");
|
||||
progress_id = 0;
|
||||
}
|
||||
break;
|
||||
case WM_DIABWARPLVL:
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cutportl.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cutportl.pal");
|
||||
progress_id = 1;
|
||||
break;
|
||||
case WM_DIABLOADGAME:
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cutstart.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cutstart.pal");
|
||||
progress_id = 1;
|
||||
break;
|
||||
case WM_DIABNEWGAME:
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cutstart.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cutstart.pal");
|
||||
progress_id = 1;
|
||||
break;
|
||||
case WM_DIABTOWNWARP:
|
||||
case WM_DIABTWARPUP:
|
||||
switch (gnLevelTypeTbl[plr[myplr].plrlevel]) {
|
||||
case DTYPE_TOWN:
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cuttt.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cuttt.pal");
|
||||
progress_id = 1;
|
||||
break;
|
||||
case DTYPE_CATHEDRAL:
|
||||
if (plr[myplr].plrlevel < 17) {
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cutl1d.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cutl1d.pal");
|
||||
progress_id = 0;
|
||||
} else {
|
||||
sgpBackCel = LoadFileInMem("Nlevels\\Cutl5.CEL", NULL);
|
||||
LoadPalette("Nlevels\\Cutl5.pal");
|
||||
progress_id = 1;
|
||||
}
|
||||
break;
|
||||
case DTYPE_CATACOMBS:
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cut2.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cut2.pal");
|
||||
progress_id = 2;
|
||||
break;
|
||||
case DTYPE_CAVES:
|
||||
if (plr[myplr].plrlevel < 17) {
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cut3.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cut3.pal");
|
||||
progress_id = 1;
|
||||
} else {
|
||||
sgpBackCel = LoadFileInMem("Nlevels\\Cutl6.CEL", NULL);
|
||||
LoadPalette("Nlevels\\Cutl6.pal");
|
||||
progress_id = 1;
|
||||
}
|
||||
break;
|
||||
case DTYPE_HELL:
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cut4.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cut4.pal");
|
||||
progress_id = 1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
return CutStart;
|
||||
case WM_DIABRETOWN:
|
||||
sgpBackCel = LoadFileInMem("Gendata\\Cuttt.CEL", NULL);
|
||||
LoadPalette("Gendata\\Cuttt.pal");
|
||||
progress_id = 1;
|
||||
break;
|
||||
return CutTown;
|
||||
case WM_DIABNEXTLVL:
|
||||
case WM_DIABPREVLVL:
|
||||
case WM_DIABTOWNWARP:
|
||||
case WM_DIABTWARPUP: {
|
||||
int lvl = currlevel;
|
||||
if (uMsg = WM_DIABTWARPUP)
|
||||
lvl = plr[myplr].plrlevel;
|
||||
|
||||
if (lvl == 1 && uMsg == WM_DIABPREVLVL)
|
||||
return CutTown;
|
||||
if (lvl == 16 && uMsg == WM_DIABNEXTLVL)
|
||||
return CutGate;
|
||||
|
||||
switch (gnLevelTypeTbl[lvl]) {
|
||||
case DTYPE_TOWN:
|
||||
return CutTown;
|
||||
case DTYPE_CATHEDRAL:
|
||||
if (lvl > 16)
|
||||
return CutLevel5;
|
||||
return CutLevel1;
|
||||
case DTYPE_CATACOMBS:
|
||||
return CutLevel2;
|
||||
case DTYPE_CAVES:
|
||||
if (lvl > 16)
|
||||
return CutLevel6;
|
||||
return CutLevel3;
|
||||
case DTYPE_HELL:
|
||||
return CutLevel4;
|
||||
default:
|
||||
return CutLevel1;
|
||||
}
|
||||
};
|
||||
case WM_DIABWARPLVL:
|
||||
return CutPortal;
|
||||
case WM_DIABSETLVL:
|
||||
case WM_DIABRTNLVL:
|
||||
if (setlvlnum == SL_BONECHAMB)
|
||||
return CutLevel2;
|
||||
if (setlvlnum == SL_VILEBETRAYER)
|
||||
return CutPortalRed;
|
||||
return CutLevel1;
|
||||
default:
|
||||
app_fatal("Unknown progress mode");
|
||||
return CutLevel1;
|
||||
}
|
||||
}
|
||||
|
||||
static void InitCutscene(interface_mode uMsg)
|
||||
{
|
||||
const char *celPath;
|
||||
const char *palPath;
|
||||
|
||||
switch (PickCutscene(uMsg)) {
|
||||
case CutStart:
|
||||
celPath = "Gendata\\Cutstart.cel";
|
||||
palPath = "Gendata\\Cutstart.pal";
|
||||
progress_id = 1;
|
||||
break;
|
||||
case CutTown:
|
||||
celPath = "Gendata\\Cuttt.cel";
|
||||
palPath = "Gendata\\Cuttt.pal";
|
||||
progress_id = 1;
|
||||
break;
|
||||
case CutLevel1:
|
||||
celPath = "Gendata\\Cutl1d.cel";
|
||||
palPath = "Gendata\\Cutl1d.pal";
|
||||
progress_id = 0;
|
||||
break;
|
||||
case CutLevel2:
|
||||
celPath = "Gendata\\Cut2.cel";
|
||||
palPath = "Gendata\\Cut2.pal";
|
||||
progress_id = 2;
|
||||
break;
|
||||
case CutLevel3:
|
||||
celPath = "Gendata\\Cut3.cel";
|
||||
palPath = "Gendata\\Cut3.pal";
|
||||
progress_id = 1;
|
||||
break;
|
||||
case CutLevel4:
|
||||
celPath = "Gendata\\Cut4.cel";
|
||||
palPath = "Gendata\\Cut4.pal";
|
||||
progress_id = 1;
|
||||
break;
|
||||
case CutLevel5:
|
||||
celPath = "Gendata\\Cutl5.cel";
|
||||
palPath = "Gendata\\Cutl5.pal";
|
||||
progress_id = 1;
|
||||
break;
|
||||
case CutLevel6:
|
||||
celPath = "Gendata\\Cutl6.cel";
|
||||
palPath = "Gendata\\Cutl6.pal";
|
||||
progress_id = 1;
|
||||
break;
|
||||
case CutPortal:
|
||||
celPath = "Gendata\\Cutportl.cel";
|
||||
palPath = "Gendata\\Cutportl.pal";
|
||||
progress_id = 1;
|
||||
break;
|
||||
case CutPortalRed:
|
||||
celPath = "Gendata\\Cutportr.cel";
|
||||
palPath = "Gendata\\Cutportr.pal";
|
||||
progress_id = 1;
|
||||
break;
|
||||
case CutGate:
|
||||
celPath = "Gendata\\Cutgate.cel";
|
||||
palPath = "Gendata\\Cutgate.pal";
|
||||
progress_id = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
assert(!sgpBackCel);
|
||||
sgpBackCel = LoadFileInMem(celPath, NULL);
|
||||
LoadPalette(palPath);
|
||||
|
||||
sgdwProgress = 0;
|
||||
}
|
||||
|
||||
|
|
@ -271,7 +187,7 @@ void interface_msg_pump()
|
|||
}
|
||||
}
|
||||
|
||||
BOOL IncProgress()
|
||||
bool IncProgress()
|
||||
{
|
||||
interface_msg_pump();
|
||||
sgdwProgress += 23;
|
||||
|
|
@ -282,7 +198,7 @@ BOOL IncProgress()
|
|||
return sgdwProgress >= 534;
|
||||
}
|
||||
|
||||
void ShowProgress(unsigned int uMsg)
|
||||
void ShowProgress(interface_mode uMsg)
|
||||
{
|
||||
WNDPROC saveProc;
|
||||
|
||||
|
|
|
|||
|
|
@ -12,9 +12,23 @@ DEVILUTION_BEGIN_NAMESPACE
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef enum Cutseens {
|
||||
CutStart,
|
||||
CutTown,
|
||||
CutLevel1,
|
||||
CutLevel2,
|
||||
CutLevel3,
|
||||
CutLevel4,
|
||||
CutLevel5,
|
||||
CutLevel6,
|
||||
CutPortal,
|
||||
CutPortalRed,
|
||||
CutGate,
|
||||
} cutseens;
|
||||
|
||||
void interface_msg_pump();
|
||||
BOOL IncProgress();
|
||||
void ShowProgress(unsigned int uMsg);
|
||||
bool IncProgress();
|
||||
void ShowProgress(interface_mode uMsg);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
|||
|
|
@ -716,7 +716,7 @@ static void LoadQuest(LoadHelper *file, int i)
|
|||
pQuest->_qlevel = file->nextLE<Uint8>();
|
||||
pQuest->_qtype = file->nextLE<Uint8>();
|
||||
pQuest->_qactive = file->nextLE<Uint8>();
|
||||
pQuest->_qlvltype = file->nextLE<Uint8>();
|
||||
pQuest->_qlvltype = (dungeon_type)file->nextLE<Uint8>();
|
||||
pQuest->_qtx = file->nextLE<Sint32>();
|
||||
pQuest->_qty = file->nextLE<Sint32>();
|
||||
pQuest->_qslvl = file->nextLE<Uint8>();
|
||||
|
|
@ -737,7 +737,7 @@ static void LoadQuest(LoadHelper *file, int i)
|
|||
ReturnLvlX = file->nextBE<Sint32>();
|
||||
ReturnLvlY = file->nextBE<Sint32>();
|
||||
ReturnLvl = file->nextBE<Sint32>();
|
||||
ReturnLvlT = file->nextBE<Sint32>();
|
||||
ReturnLvlT = (dungeon_type)file->nextBE<Sint32>();
|
||||
DoomQuestState = file->nextBE<Sint32>();
|
||||
}
|
||||
|
||||
|
|
@ -766,7 +766,7 @@ static void LoadPortal(LoadHelper *file, int i)
|
|||
pPortal->x = file->nextLE<Sint32>();
|
||||
pPortal->y = file->nextLE<Sint32>();
|
||||
pPortal->level = file->nextLE<Sint32>();
|
||||
pPortal->ltype = file->nextLE<Sint32>();
|
||||
pPortal->ltype = (dungeon_type)file->nextLE<Sint32>();
|
||||
pPortal->setlvl = file->nextBool32();
|
||||
}
|
||||
|
||||
|
|
@ -830,7 +830,7 @@ void ConvertLevels()
|
|||
bool _setlevel = setlevel;
|
||||
int _setlvlnum = setlvlnum;
|
||||
int _currlevel = currlevel;
|
||||
int _leveltype = leveltype;
|
||||
dungeon_type _leveltype = leveltype;
|
||||
|
||||
gbSkipSync = true;
|
||||
|
||||
|
|
@ -940,7 +940,7 @@ void LoadGame(BOOL firstflag)
|
|||
setlevel = file.nextBool8();
|
||||
setlvlnum = file.nextBE<Uint32>();
|
||||
currlevel = file.nextBE<Uint32>();
|
||||
leveltype = file.nextBE<Uint32>();
|
||||
leveltype = (dungeon_type)file.nextBE<Uint32>();
|
||||
if (!setlevel)
|
||||
leveltype = gnLevelTypeTbl[currlevel];
|
||||
int _ViewX = file.nextBE<Sint32>();
|
||||
|
|
|
|||
|
|
@ -296,7 +296,7 @@ static void DeltaImportJunk(BYTE *src)
|
|||
sgJunk.portal[i].x,
|
||||
sgJunk.portal[i].y,
|
||||
sgJunk.portal[i].level,
|
||||
sgJunk.portal[i].ltype);
|
||||
(dungeon_type)sgJunk.portal[i].ltype);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1244,7 +1244,7 @@ static DWORD On_STRING2(int pnum, TCmd *pCmd)
|
|||
return len + 2; // length of string + nul terminator + sizeof(p->bCmd)
|
||||
}
|
||||
|
||||
static void delta_open_portal(int pnum, BYTE x, BYTE y, BYTE bLevel, BYTE bLType, BYTE bSetLvl)
|
||||
static void delta_open_portal(int pnum, BYTE x, BYTE y, BYTE bLevel, dungeon_type bLType, BYTE bSetLvl)
|
||||
{
|
||||
sgbDeltaChanged = TRUE;
|
||||
sgJunk.portal[pnum].x = x;
|
||||
|
|
@ -2242,7 +2242,7 @@ static DWORD On_ACTIVATEPORTAL(TCmd *pCmd, int pnum)
|
|||
if (gbBufferMsgs == 1)
|
||||
msg_send_packet(pnum, p, sizeof(*p));
|
||||
else {
|
||||
ActivatePortal(pnum, p->x, p->y, p->wParam1, p->wParam2, p->wParam3);
|
||||
ActivatePortal(pnum, p->x, p->y, p->wParam1, (dungeon_type)p->wParam2, p->wParam3);
|
||||
if (pnum != myplr) {
|
||||
if (currlevel == 0)
|
||||
AddInTownPortal(pnum);
|
||||
|
|
@ -2260,7 +2260,7 @@ static DWORD On_ACTIVATEPORTAL(TCmd *pCmd, int pnum)
|
|||
} else
|
||||
RemovePortalMissile(pnum);
|
||||
}
|
||||
delta_open_portal(pnum, p->x, p->y, p->wParam1, p->wParam2, p->wParam3);
|
||||
delta_open_portal(pnum, p->x, p->y, p->wParam1, (dungeon_type)p->wParam2, p->wParam3);
|
||||
}
|
||||
|
||||
return sizeof(*p);
|
||||
|
|
|
|||
|
|
@ -582,7 +582,7 @@ static void multi_send_pinfo(int pnum, char cmd)
|
|||
dthread_send_delta(pnum, cmd, &pkplr, sizeof(pkplr));
|
||||
}
|
||||
|
||||
static int InitLevelType(int l)
|
||||
static dungeon_type InitLevelType(int l)
|
||||
{
|
||||
if (l == 0)
|
||||
return DTYPE_TOWN;
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ void InitPortals()
|
|||
}
|
||||
}
|
||||
|
||||
void SetPortalStats(int i, BOOL o, int x, int y, int lvl, int lvltype)
|
||||
void SetPortalStats(int i, BOOL o, int x, int y, int lvl, dungeon_type lvltype)
|
||||
{
|
||||
portal[i].open = o;
|
||||
portal[i].x = x;
|
||||
|
|
@ -79,7 +79,7 @@ void AddInTownPortal(int i)
|
|||
AddWarpMissile(i, WarpDropX[i], WarpDropY[i]);
|
||||
}
|
||||
|
||||
void ActivatePortal(int i, int x, int y, int lvl, int lvltype, BOOL sp)
|
||||
void ActivatePortal(int i, int x, int y, int lvl, dungeon_type lvltype, BOOL sp)
|
||||
{
|
||||
portal[i].open = TRUE;
|
||||
|
||||
|
|
|
|||
|
|
@ -12,14 +12,23 @@ DEVILUTION_BEGIN_NAMESPACE
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct PortalStruct {
|
||||
bool open;
|
||||
Sint32 x;
|
||||
Sint32 y;
|
||||
Sint32 level;
|
||||
dungeon_type ltype;
|
||||
bool setlvl;
|
||||
} PortalStruct;
|
||||
|
||||
extern PortalStruct portal[MAXPORTAL];
|
||||
|
||||
void InitPortals();
|
||||
void SetPortalStats(int i, BOOL o, int x, int y, int lvl, int lvltype);
|
||||
void SetPortalStats(int i, BOOL o, int x, int y, int lvl, dungeon_type lvltype);
|
||||
void AddWarpMissile(int i, int x, int y);
|
||||
void SyncPortals();
|
||||
void AddInTownPortal(int i);
|
||||
void ActivatePortal(int i, int x, int y, int lvl, int lvltype, BOOL sp);
|
||||
void ActivatePortal(int i, int x, int y, int lvl, dungeon_type lvltype, BOOL sp);
|
||||
void DeactivatePortal(int i);
|
||||
BOOL PortalOnLevel(int i);
|
||||
void RemovePortalMissile(int id);
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ int numqlines;
|
|||
int WaterDone;
|
||||
int ReturnLvlX;
|
||||
int ReturnLvlY;
|
||||
int ReturnLvlT;
|
||||
dungeon_type ReturnLvlT;
|
||||
int ReturnLvl;
|
||||
|
||||
/** Contains the data related to each quest_id. */
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ typedef struct QuestStruct {
|
|||
Uint8 _qlevel;
|
||||
Uint8 _qtype;
|
||||
Uint8 _qactive;
|
||||
Uint8 _qlvltype;
|
||||
dungeon_type _qlvltype;
|
||||
Sint32 _qtx;
|
||||
Sint32 _qty;
|
||||
Uint8 _qslvl;
|
||||
|
|
@ -32,7 +32,7 @@ typedef struct QuestStruct {
|
|||
typedef struct QuestData {
|
||||
Uint8 _qdlvl;
|
||||
Sint8 _qdmultlvl;
|
||||
Uint8 _qlvlt;
|
||||
dungeon_type _qlvlt;
|
||||
Uint8 _qdtype;
|
||||
Uint8 _qdrnd;
|
||||
Uint8 _qslvl;
|
||||
|
|
@ -46,7 +46,7 @@ extern BYTE *pQLogCel;
|
|||
extern QuestStruct quests[MAXQUESTS];
|
||||
extern int ReturnLvlX;
|
||||
extern int ReturnLvlY;
|
||||
extern int ReturnLvlT;
|
||||
extern dungeon_type ReturnLvlT;
|
||||
extern int ReturnLvl;
|
||||
|
||||
void InitQuests();
|
||||
|
|
|
|||
13
structs.h
13
structs.h
|
|
@ -102,19 +102,6 @@ typedef struct ObjectStruct {
|
|||
int _oVar8;
|
||||
} ObjectStruct;
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
// portal
|
||||
//////////////////////////////////////////////////
|
||||
|
||||
typedef struct PortalStruct {
|
||||
BOOL open;
|
||||
int x;
|
||||
int y;
|
||||
int level;
|
||||
int ltype;
|
||||
BOOL setlvl;
|
||||
} PortalStruct;
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
// gamemenu/gmenu
|
||||
//////////////////////////////////////////////////
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue