From 493436dc1a1e3c7537195e2c8c616e68e861eadc Mon Sep 17 00:00:00 2001 From: ZTsukei Date: Sun, 19 Feb 2017 15:53:32 -0500 Subject: [PATCH] Adjusted bonustime, Goldshrooms work, added intermediate boostspeed for between Megashroom size --- src/d_clisrv.c | 2 +- src/djgppdos/i_system.c | 4 +-- src/doomdef.h | 10 +++--- src/g_game.c | 2 +- src/k_kart.c | 77 ++++++++++++++++++++++++++++------------- src/p_enemy.c | 4 ++- 6 files changed, 64 insertions(+), 35 deletions(-) diff --git a/src/d_clisrv.c b/src/d_clisrv.c index 608701a5..99839ab0 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -2823,7 +2823,7 @@ static void Got_AddPlayer(UINT8 **p, INT32 playernum); // called one time at init void D_ClientServerInit(void) { - DEBFILE(va("- - -== SRB2 v%d.%.2d.%d "VERSIONSTRING" debugfile ==- - -\n", + DEBFILE(va("- - -== SRB2Kart v%d.%.2d.%d "VERSIONSTRING" debugfile ==- - -\n", VERSION/100, VERSION%100, SUBVERSION)); #ifndef NONET diff --git a/src/djgppdos/i_system.c b/src/djgppdos/i_system.c index dae9ed16..bc3c8b2b 100644 --- a/src/djgppdos/i_system.c +++ b/src/djgppdos/i_system.c @@ -1597,8 +1597,8 @@ void I_RemoveExitFunc(void (*func)()) static inline void exception_handler(int num) { static char msg[255]; - sprintf(msg,"Sonic Robo Blast 2 "VERSIONSTRING"\r\n" - "This is a error of SRB2, try to send the following info to programmers\r\n"); + sprintf(msg,"SRB2Kart "VERSIONSTRING"\r\n" + "This is a error of SRB2Kart, try to send the following info to programmers\r\n"); //D_QuitNetGame (); //say 'byebye' to other players when your machine // crashes?... hmm... do they have to die with you??? diff --git a/src/doomdef.h b/src/doomdef.h index 71ab0885..91900bc0 100644 --- a/src/doomdef.h +++ b/src/doomdef.h @@ -143,16 +143,16 @@ extern FILE *logstream; #define DEVELOP // Disable this for release builds to remove excessive cheat commands and enable MD5 checking and stuff, all in one go. :3 #ifdef DEVELOP #define VERSION 100 // Game version -#define SUBVERSION 5 // more precise version number +#define SUBVERSION 6 // more precise version number #define VERSIONSTRING "Development EXE" -#define VERSIONSTRINGW "v1.0.05" +#define VERSIONSTRINGW "v1.0.06" // most interface strings are ignored in development mode. // we use comprevision and compbranch instead. #else #define VERSION 100 // Game version -#define SUBVERSION 5 // more precise version number -#define VERSIONSTRING "v1.0.05" -#define VERSIONSTRINGW L"v1.0.05" +#define SUBVERSION 6 // more precise version number +#define VERSIONSTRING "v1.0.06" +#define VERSIONSTRINGW L"v1.0.06" // Hey! If you change this, add 1 to the MODVERSION below! // Otherwise we can't force updates! #endif diff --git a/src/g_game.c b/src/g_game.c index 20863cee..9b694c64 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -199,7 +199,7 @@ UINT16 extralifetics = 4*TICRATE; // SRB2kart INT32 bootime = 7*TICRATE; INT32 mushroomtime = TICRATE + (TICRATE/3); -INT32 bonustime = 20*TICRATE; +INT32 bonustime = 10*TICRATE; INT32 gameovertics = 15*TICRATE; diff --git a/src/k_kart.c b/src/k_kart.c index d4db8331..d12dd1c5 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -1091,33 +1091,41 @@ fixed_t K_GetKartBoostPower(player_t *player) && player->kartstuff[k_offroad] >= 0) boostpower = FixedDiv(boostpower, player->kartstuff[k_offroad] + FRACUNIT); - if (player->kartstuff[k_growshrinktimer] < -1) // Shrink - { + if (player->kartstuff[k_growshrinktimer] < -1) + { // Shrink boostvalue += 6; // 6/8 speed (*0.750) numboosts++; } - if (player->kartstuff[k_squishedtimer] > 0) // Squished - { + if (player->kartstuff[k_squishedtimer] > 0) + { // Squished boostvalue += 7; // 7/8 speed (*0.875) numboosts++; } - if (player->kartstuff[k_growshrinktimer] > 1) // Mega Mushroom - { + if (player->kartstuff[k_growshrinktimer] > 1 + && (player->kartstuff[k_growshrinktimer] > (bonustime - 25) + || player->kartstuff[k_growshrinktimer] <= 26)) + { // Mega Mushroom - Mid-size + boostvalue += 9; // 9/8 speed (*1.125) + numboosts++; + } + if (player->kartstuff[k_growshrinktimer] < (bonustime - 25) + && player->kartstuff[k_growshrinktimer] > 26) + { // Mega Mushroom boostvalue += 10; // 10/8 speed (*1.250) numboosts++; } - if (player->kartstuff[k_startimer]) // Star - { + if (player->kartstuff[k_startimer]) + { // Star boostvalue += 11; // 11/8 speed (*1.375) numboosts++; } - if (player->kartstuff[k_driftboost]) // Drift Boost - { + if (player->kartstuff[k_driftboost]) + { // Drift Boost boostvalue += 12; // 12/8 speed (*1.500) numboosts++; } - if (player->kartstuff[k_mushroomtimer]) // Mushroom - { + if (player->kartstuff[k_mushroomtimer]) + { // Mushroom boostvalue += 14; // 14/8 speed (*1.750) numboosts++; } @@ -1957,17 +1965,33 @@ static void K_KartUpdatePosition(player_t *player) } player->kartstuff[k_position] = position; } + +boolean K_CheckForHoldItem(player_t *player) +{ + if ( player->kartstuff[k_greenshell] == 1 + || player->kartstuff[k_redshell] == 1 + || player->kartstuff[k_banana] == 1 + || player->kartstuff[k_fakeitem] == 1 + || player->kartstuff[k_bobomb] == 1 + || player->kartstuff[k_triplegreenshell] & 1 + || player->kartstuff[k_triplegreenshell] & 2 + || player->kartstuff[k_triplegreenshell] & 4 + || player->kartstuff[k_tripleredshell] & 1 + || player->kartstuff[k_tripleredshell] & 2 + || player->kartstuff[k_tripleredshell] & 4 + || player->kartstuff[k_triplebanana] & 1 + || player->kartstuff[k_triplebanana] & 2 + || player->kartstuff[k_triplebanana] & 4 + ) return true; + return false; +} // // K_MoveKartPlayer // void K_MoveKartPlayer(player_t *player, ticcmd_t *cmd, boolean onground) { boolean ATTACK_IS_DOWN = ((cmd->buttons & BT_ATTACK) && !(player->pflags & PF_ATTACKDOWN)); - boolean HOLDING_ITEM = (player->kartstuff[k_greenshell] == 1 || player->kartstuff[k_redshell] == 1 - || player->kartstuff[k_banana] == 1 || player->kartstuff[k_fakeitem] == 1 || player->kartstuff[k_bobomb] == 1 - || player->kartstuff[k_triplegreenshell] & 1 || player->kartstuff[k_triplegreenshell] & 2 || player->kartstuff[k_triplegreenshell] & 4 - || player->kartstuff[k_tripleredshell] & 1 || player->kartstuff[k_tripleredshell] & 2 || player->kartstuff[k_tripleredshell] & 4 - || player->kartstuff[k_triplebanana] & 1 || player->kartstuff[k_triplebanana] & 2 || player->kartstuff[k_triplebanana] & 4); + boolean HOLDING_ITEM = K_CheckForHoldItem(player); boolean NO_BOO = (player->kartstuff[k_boostolentimer] == 0 && player->kartstuff[k_bootaketimer] == 0); K_KartUpdatePosition(player); @@ -2024,7 +2048,8 @@ void K_MoveKartPlayer(player_t *player, ticcmd_t *cmd, boolean onground) // Lightning // GoldenMushroom power - if (ATTACK_IS_DOWN && !HOLDING_ITEM && onground && player->kartstuff[k_goldshroom] == 1 && player->kartstuff[k_goldshroomtimer] == 0 && NO_BOO) + if (ATTACK_IS_DOWN && !HOLDING_ITEM && onground && player->kartstuff[k_goldshroom] == 1 + && player->kartstuff[k_goldshroomtimer] == 0 && NO_BOO) { K_DoMushroom(player, true); player->kartstuff[k_goldshroomtimer] = bonustime; @@ -2034,9 +2059,9 @@ void K_MoveKartPlayer(player_t *player, ticcmd_t *cmd, boolean onground) else if (ATTACK_IS_DOWN && player->kartstuff[k_goldshroomtimer] > 1 && onground && NO_BOO) { K_DoMushroom(player, true); - player->kartstuff[k_goldshroomtimer] -= 5; - if (player->kartstuff[k_goldshroomtimer] < 1) - player->kartstuff[k_goldshroomtimer] = 1; + //player->kartstuff[k_goldshroomtimer] -= 10; + //if (player->kartstuff[k_goldshroomtimer] < 1) + // player->kartstuff[k_goldshroomtimer] = 1; } // TripleMushroom power else if (ATTACK_IS_DOWN && !HOLDING_ITEM && player->kartstuff[k_mushroom] == 4 && onground && NO_BOO) @@ -2366,7 +2391,7 @@ void K_MoveKartPlayer(player_t *player, ticcmd_t *cmd, boolean onground) if (!P_IsLocalPlayer(player)) S_StartSound(player->mo, sfx_mega); //K_PlayTauntSound(player->mo); - player->kartstuff[k_growshrinktimer] = bonustime/2; + player->kartstuff[k_growshrinktimer] = bonustime; S_StartSound(player->mo, sfx_mario3); player->pflags |= PF_ATTACKDOWN; player->kartstuff[k_megashroom] = 0; @@ -2388,7 +2413,9 @@ void K_MoveKartPlayer(player_t *player, ticcmd_t *cmd, boolean onground) } // Mushroom Boost - if (player->kartstuff[k_mushroomtimer] > 0 && player->kartstuff[k_boosting] == 0 && onground) + if (((player->kartstuff[k_mushroomtimer] > 0 && player->kartstuff[k_boosting] == 0) + || (player->kartstuff[k_mushroomtimer] > 0 && ATTACK_IS_DOWN + && player->kartstuff[k_goldshroomtimer] > 1 && NO_BOO)) && onground) { cmd->forwardmove = 1; if (player->kartstuff[k_drift] >= 1) @@ -2403,7 +2430,7 @@ void K_MoveKartPlayer(player_t *player, ticcmd_t *cmd, boolean onground) player->kartstuff[k_boosting] = 0; // Megashroom - Make the player grow! - if (player->kartstuff[k_growshrinktimer] > (bonustime/2 - 25)) + if (player->kartstuff[k_growshrinktimer] > (bonustime - 25)) { if (leveltime & 2) player->mo->destscale = FRACUNIT*3/2; @@ -2411,7 +2438,7 @@ void K_MoveKartPlayer(player_t *player, ticcmd_t *cmd, boolean onground) player->mo->destscale = FRACUNIT; } else if (player->kartstuff[k_growshrinktimer] > 26 - && player->kartstuff[k_growshrinktimer] <= (bonustime/2 - 25)) + && player->kartstuff[k_growshrinktimer] <= (bonustime - 25)) player->mo->destscale = FRACUNIT*3/2; // Megashroom - Back to normal... else if (player->kartstuff[k_growshrinktimer] > 1 diff --git a/src/p_enemy.c b/src/p_enemy.c index 8b739430..e1836cab 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -8132,7 +8132,9 @@ void A_ItemPop(mobj_t *actor) || actor->target->player->kartstuff[k_lightning] || actor->target->player->kartstuff[k_megashroom] || actor->target->player->kartstuff[k_itemroulette] || actor->target->player->kartstuff[k_boo] || actor->target->player->kartstuff[k_bootaketimer] - || actor->target->player->kartstuff[k_boostolentimer])) + || actor->target->player->kartstuff[k_boostolentimer] + || actor->target->player->kartstuff[k_growshrinktimer] > 1 + || actor->target->player->kartstuff[k_goldshroomtimer])) actor->target->player->kartstuff[k_itemroulette] = 1; else if(cv_debug && !(actor->target && actor->target->player)) CONS_Printf("ERROR: Powerup has no target!\n");