diff --git a/src/deh_soc.c b/src/deh_soc.c index cfd80b952..60c7cfc6c 100644 --- a/src/deh_soc.c +++ b/src/deh_soc.c @@ -3209,6 +3209,47 @@ void readmaincfg(MYFILE *f) { ammoremovaltics = get_number(word2); } + // BlanKart: Easy ways to set these for balance purposes + else if (fastcmp(word, "HYUDOROTIME")) + { + hyudorotime = get_number(word2); + } + else if (fastcmp(word, "STEALTIME")) + { + stealtime = get_number(word2); + } + else if (fastcmp(word, "WATERPANELTIME")) + { + waterpaneltime = get_number(word2); + } + else if (fastcmp(word, "SNEAKERTIME")) + { + sneakertime = get_number(word2); + } + else if (fastcmp(word, "BUBBLETIME")) + { + bubbletime = get_number(word2); + } + else if (fastcmp(word, "COMEBACKTIME")) + { + comebacktime = get_number(word2); + } + else if (fastcmp(word, "GREASETICS")) + { + greasetics = get_number(word2); + } + else if (fastcmp(word, "WIPEOUTSLOWTIME")) + { + wipeoutslowtime = get_number(word2); + } + else if (fastcmp(word, "WANTEDREDUCE")) + { + wantedreduce = get_number(word2); + } + else if (fastcmp(word, "WANTEDFREQUENCY")) + { + wantedfrequency = get_number(word2); + } else if (fastcmp(word, "INTROTOPLAY")) { introtoplay = (UINT8)get_number(word2); @@ -3224,10 +3265,6 @@ void readmaincfg(MYFILE *f) if (creditscutscene > 128) creditscutscene = 128; } - else if (fastcmp(word, "USEBLACKROCK")) - { - useBlackRock = (UINT8)(value || word2[0] == 'T' || word2[0] == 'Y'); - } else if (fastcmp(word, "LOOPTITLE")) { looptitle = (value || word2[0] == 'T' || word2[0] == 'Y'); diff --git a/src/doomstat.h b/src/doomstat.h index 39a535a20..4f7f9f57e 100644 --- a/src/doomstat.h +++ b/src/doomstat.h @@ -609,6 +609,7 @@ extern tic_t battleexittime; extern INT32 hyudorotime; extern INT32 stealtime; extern INT32 sneakertime; +extern INT32 waterpaneltime; extern INT32 itemtime; extern INT32 bubbletime; extern INT32 comebacktime; @@ -620,7 +621,6 @@ extern INT32 wantedfrequency; extern UINT8 introtoplay; extern UINT8 creditscutscene; -extern UINT8 useBlackRock; extern UINT8 use1upSound; extern UINT8 maxXtraLife; // Max extra lives from rings diff --git a/src/g_game.c b/src/g_game.c index 13cec79e6..4e0b38632 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -240,6 +240,7 @@ tic_t battleexittime = 8*TICRATE; INT32 hyudorotime = 7*TICRATE; INT32 stealtime = TICRATE/2; INT32 sneakertime = TICRATE + (TICRATE/3); +INT32 waterpaneltime = TICRATE*2; INT32 itemtime = 8*TICRATE; INT32 bubbletime = TICRATE/2; INT32 comebacktime = 3*TICRATE; @@ -254,7 +255,6 @@ UINT8 maxXtraLife = 2; // Max extra lives from rings UINT8 introtoplay; UINT8 creditscutscene; -UINT8 useBlackRock = 1; // Emerald locations mobj_t *hunt1; diff --git a/src/k_kart.c b/src/k_kart.c index f413c9ff3..bcf7a42bf 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -5535,7 +5535,7 @@ static void K_SneakerPanelEffect(player_t *player, INT32 type) void K_DoSneaker(player_t *player, INT32 type) { const fixed_t intendedboost = K_GetSneakerBoostSpeed(); - const tic_t sneakerduration = (type == 3) ? TICRATE*2 : sneakertime; + const tic_t sneakerduration = (type == SNEAKERTYPE_WATERPANEL) ? waterpaneltime : sneakertime; if (player->floorboost == 0 || player->floorboost == 3) { @@ -5548,7 +5548,7 @@ void K_DoSneaker(player_t *player, INT32 type) K_SneakerPanelEffect(player, type); - if (type != 0 && type != 3) + if (type != SNEAKERTYPE_PANEL && type != SNEAKERTYPE_WATERPANEL) { K_PlayBoostTaunt(player->mo); } @@ -5561,7 +5561,7 @@ void K_DoSneaker(player_t *player, INT32 type) player->numsneakers = CLAMP(player->numsneakers+1, 0, stackingactive ? MAXSNEAKERSTACK : 1); } - if (type == 3) + if (type == SNEAKERTYPE_WATERPANEL) { // Water Running please! player->mo->flags2 |= MF2_WATERRUN; diff --git a/src/lua_script.c b/src/lua_script.c index d77ab74a2..b5bb1df68 100644 --- a/src/lua_script.c +++ b/src/lua_script.c @@ -365,6 +365,12 @@ int LUA_PushGlobals(lua_State *L, const char *word) } else if (fastcmp(word,"gamespeed")) { lua_pushinteger(L, gamespeed); return 1; + } else if (fastcmp(word,"nummapboxes")) { + lua_pushinteger(L, nummapboxes); + return 1; + } else if (fastcmp(word,"numgotboxes")) { + lua_pushinteger(L, numgotboxes); + return 1; } else if (fastcmp(word,"itembreaker")) { lua_pushinteger(L, itembreaker); return 1; @@ -428,6 +434,36 @@ int LUA_PushGlobals(lua_State *L, const char *word) } else if (fastcmp(word, "compatmode")) { lua_pushboolean(L, lua_compatmode); return 1; + } else if (fastcmp(word, "hyudorotime")) { + lua_pushinteger(L, hyudorotime); + return 1; + } else if (fastcmp(word, "stealtime")) { + lua_pushinteger(L, stealtime); + return 1; + } else if (fastcmp(word, "sneakertime")) { + lua_pushinteger(L, sneakertime); + return 1; + } else if (fastcmp(word, "waterpaneltime")) { + lua_pushinteger(L, waterpaneltime); + return 1; + } else if (fastcmp(word, "bubbletime")) { + lua_pushinteger(L, bubbletime); + return 1; + } else if (fastcmp(word, "comebacktime")) { + lua_pushinteger(L, comebacktime); + return 1; + } else if (fastcmp(word, "greasetics")) { + lua_pushinteger(L, greasetics); + return 1; + } else if (fastcmp(word, "wipeoutslowtime")) { + lua_pushinteger(L, wipeoutslowtime); + return 1; + } else if (fastcmp(word, "wantedreduce")) { + lua_pushinteger(L, wantedreduce); + return 1; + } else if (fastcmp(word, "wantedfrequency")) { + lua_pushinteger(L, wantedfrequency); + return 1; } else if (fastcmp(word, "mapnamespace")) { lua_pushstring(L, P_MapNamespaceString(mapnamespace)); return 1; @@ -513,6 +549,26 @@ int LUA_WriteGlobals(lua_State *L, const char *word) nummapboxes = (INT32)luaL_checkinteger(L, 2); else if (fastcmp(word,"numgotboxes")) numgotboxes = (INT32)luaL_checkinteger(L, 2); + else if (fastcmp(word, "hyudorotime")) + hyudorotime = (INT32)luaL_checkinteger(L, 2); + else if (fastcmp(word, "stealtime")) + stealtime = (INT32)luaL_checkinteger(L, 2); + else if (fastcmp(word, "sneakertime")) + sneakertime = (INT32)luaL_checkinteger(L, 2); + else if (fastcmp(word, "waterpaneltime")) + waterpaneltime = (INT32)luaL_checkinteger(L, 2); + else if (fastcmp(word, "bubbletime")) + bubbletime = (INT32)luaL_checkinteger(L, 2); + else if (fastcmp(word, "comebacktime")) + comebacktime = (INT32)luaL_checkinteger(L, 2); + else if (fastcmp(word, "greasetics")) + greasetics = (INT32)luaL_checkinteger(L, 2); + else if (fastcmp(word, "wipeoutslowtime")) + wipeoutslowtime = (INT32)luaL_checkinteger(L, 2); + else if (fastcmp(word, "wantedreduce")) + wantedreduce = (INT32)luaL_checkinteger(L, 2); + else if (fastcmp(word, "wantedfrequency")) + wantedfrequency = (INT32)luaL_checkinteger(L, 2); else return 0; diff --git a/src/p_saveg.c b/src/p_saveg.c index 363d0ad75..794a31849 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -5209,6 +5209,7 @@ static void P_NetArchiveMisc(savebuffer_t *save, boolean resending) WRITEFIXED(save->p, mapobjectscale); // SRB2kart + WRITEINT32(save->p, nummapboxes); WRITEINT32(save->p, numgotboxes); WRITEUINT8(save->p, numtargets); WRITEUINT8(save->p, itembreaker); @@ -5239,6 +5240,18 @@ static void P_NetArchiveMisc(savebuffer_t *save, boolean resending) WRITEUINT32(save->p, introtime); WRITEUINT32(save->p, starttime); + WRITEINT32(save->p, hyudorotime); + WRITEINT32(save->p, stealtime); + WRITEINT32(save->p, sneakertime); + WRITEINT32(save->p, itemtime); + WRITEINT32(save->p, bubbletime); + WRITEINT32(save->p, comebacktime); + WRITEINT32(save->p, bumptime); + WRITEINT32(save->p, greasetics); + WRITEINT32(save->p, wipeoutslowtime); + WRITEINT32(save->p, wantedreduce); + WRITEINT32(save->p, wantedfrequency); + WRITEUINT32(save->p, timelimitintics); WRITEUINT32(save->p, extratimeintics); WRITEUINT32(save->p, secretextratime); @@ -5379,6 +5392,7 @@ FUNCINLINE static ATTRINLINE boolean P_NetUnArchiveMisc(savebuffer_t *save, bool mapobjectscale = READFIXED(save->p); // SRB2kart + nummapboxes = READINT32(save->p); numgotboxes = READINT32(save->p); numtargets = READUINT8(save->p); itembreaker = (boolean)READUINT8(save->p); @@ -5408,6 +5422,18 @@ FUNCINLINE static ATTRINLINE boolean P_NetUnArchiveMisc(savebuffer_t *save, bool introtime = READUINT32(save->p); starttime = READUINT32(save->p); + + hyudorotime = READINT32(save->p); + stealtime = READINT32(save->p); + sneakertime = READINT32(save->p); + itemtime = READINT32(save->p); + bubbletime = READINT32(save->p); + comebacktime = READINT32(save->p); + bumptime = READINT32(save->p); + greasetics = READINT32(save->p); + wipeoutslowtime = READINT32(save->p); + wantedreduce = READINT32(save->p); + wantedfrequency = READINT32(save->p); timelimitintics = READUINT32(save->p); extratimeintics = READUINT32(save->p);