diff --git a/src/d_main.c b/src/d_main.c index 9f201492..6455c328 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -930,19 +930,21 @@ static void IdentifyVersion(void) // Add the weapons //D_AddFile(va(pandf,srb2waddir,"rings.dta")); +#ifdef USE_PATCH_DTA + // Add our crappy patches to fix our bugs + D_AddFile(va(pandf,srb2waddir,"patch.dta")); +#endif + // SRB2kart - Add graphics (temp) // The command for md5 checks is "W_VerifyFileMD5" - looks for ASSET_HASH_SRB2_SRB in config.h.in D_AddFile(va(pandf,srb2waddir,"gfx.kart")); D_AddFile(va(pandf,srb2waddir,"chars.kart")); D_AddFile(va(pandf,srb2waddir,"maps.kart")); D_AddFile(va(pandf,srb2waddir,"sounds.kart")); -#ifdef USE_PATCH_DTA - // Add our crappy patches to fix our bugs - D_AddFile(va(pandf,srb2waddir,"patch.dta")); +#ifdef USE_PATCH_KART + D_AddFile(va(pandf,srb2waddir,"patch.kart")); #endif - D_AddFile(va(pandf,srb2waddir,"sonicitems.wad")); // Temporary. Remove before merging into master. - #if !defined (HAVE_SDL) || defined (HAVE_MIXER) { #if defined (DC) && 0 @@ -1241,25 +1243,23 @@ void D_SRB2Main(void) #ifndef DEVELOP // md5s last updated 12/14/14 // Check MD5s of autoloaded files - W_VerifyFileMD5(0, ASSET_HASH_SRB2_SRB); // srb2.srb/srb2.wad - W_VerifyFileMD5(1, ASSET_HASH_GFX_DTA); // gfx.kart - W_VerifyFileMD5(2, ASSET_HASH_CHARS_DTA); // chars.kart - W_VerifyFileMD5(3, ASSET_HASH_MAPS_DTA); // maps.kart - // sounds.kart - since music is large, we'll ignore it for now. - + mainwads = 0; + W_VerifyFileMD5(mainwads, ASSET_HASH_SRB2_SRB); mainwads++; // srb2.srb/srb2.wad #ifdef USE_PATCH_DTA - W_VerifyFileMD5(4, ASSET_HASH_PATCH_DTA); // patch.dta + W_VerifyFileMD5(mainwads, ASSET_HASH_PATCH_DTA); mainwads++; // patch.dta +#endif + W_VerifyFileMD5(mainwads, ASSET_HASH_GFX_KART); mainwads++; // gfx.kart + W_VerifyFileMD5(mainwads, ASSET_HASH_CHARS_KART); mainwads++; // chars.kart + W_VerifyFileMD5(mainwads, ASSET_HASH_MAPS_KART); mainwads++; // maps.kart + //W_VerifyFileMD5(mainwads, ASSET_HASH_SOUNDS_KART); mainwads++; // sounds.kart - doesn't trigger modifiedgame, doesn't need an MD5...? +#ifdef USE_PATCH_KART + W_VerifyFileMD5(mainwads, ASSET_HASH_PATCH_KART); mainwads++; // patch.kart #endif // don't check music.dta because people like to modify it, and it doesn't matter if they do // ...except it does if they slip maps in there, and that's what W_VerifyNMUSlumps is for. #endif //ifndef DEVELOP - mainwads = 5; // there are 4 wads not to unload (5 with temp sonicitems.wad) -#ifdef USE_PATCH_DTA - ++mainwads; // patch.dta adds one more -#endif - cht_Init(); //---------------------------------------------------- READY SCREEN diff --git a/src/doomdef.h b/src/doomdef.h index 6c2325c9..7729801d 100644 --- a/src/doomdef.h +++ b/src/doomdef.h @@ -161,6 +161,9 @@ extern FILE *logstream; // Comment or uncomment this as necessary. //#define USE_PATCH_DTA +// Kart has it's own, as well. +#define USE_PATCH_KART + // Modification options // If you want to take advantage of the Master Server's ability to force clients to update // to the latest version, fill these out. Otherwise, just comment out UPDATE_ALERT and leave diff --git a/src/info.c b/src/info.c index 6c8c7160..606904a4 100644 --- a/src/info.c +++ b/src/info.c @@ -2727,14 +2727,14 @@ state_t states[NUMSTATES] = {SPR_KRBM, FF_FULLBRIGHT|8, 5, {NULL}, 0, 0, S_SLOWBOOM10}, // S_SLOWBOOM9 {SPR_KRBM, FF_FULLBRIGHT|9, 5, {NULL}, 0, 0, S_NULL}, // S_SLOWBOOM10 - {SPR_BHOG, 0, 3, {NULL}, 0, 0, S_BALLHOG2}, // S_BALLHOG1 - {SPR_BHOG, 1, 1, {NULL}, 0, 0, S_BALLHOG3}, // S_BALLHOG2 - {SPR_BHOG, 2, 2, {NULL}, 0, 0, S_BALLHOG4}, // S_BALLHOG3 - {SPR_BHOG, 3, 3, {NULL}, 0, 0, S_BALLHOG5}, // S_BALLHOG4 - {SPR_BHOG, 4, 3, {NULL}, 0, 0, S_BALLHOG6}, // S_BALLHOG5 - {SPR_BHOG, 5, 2, {NULL}, 0, 0, S_BALLHOG7}, // S_BALLHOG6 - {SPR_BHOG, 6, 1, {NULL}, 0, 0, S_BALLHOG8}, // S_BALLHOG7 - {SPR_BHOG, 7, 1, {NULL}, 0, 0, S_BALLHOG1}, // S_BALLHOG8 + {SPR_BHOG, 0, 3, {A_PlaySound}, sfx_s1bd, 1, S_BALLHOG2}, // S_BALLHOG1 + {SPR_BHOG, FF_FULLBRIGHT|1, 1, {NULL}, 0, 0, S_BALLHOG3}, // S_BALLHOG2 + {SPR_BHOG, FF_FULLBRIGHT|2, 2, {NULL}, 0, 0, S_BALLHOG4}, // S_BALLHOG3 + {SPR_BHOG, FF_FULLBRIGHT|3, 3, {NULL}, 0, 0, S_BALLHOG5}, // S_BALLHOG4 + {SPR_BHOG, FF_FULLBRIGHT|4, 3, {NULL}, 0, 0, S_BALLHOG6}, // S_BALLHOG5 + {SPR_BHOG, 5, 2, {NULL}, 0, 0, S_BALLHOG7}, // S_BALLHOG6 + {SPR_BHOG, 6, 1, {NULL}, 0, 0, S_BALLHOG8}, // S_BALLHOG7 + {SPR_BHOG, 7, 1, {NULL}, 0, 0, S_BALLHOG1}, // S_BALLHOG8 {SPR_BLIG, 0, 2, {NULL}, 0, 0, S_BLUELIGHTNING2}, // S_BLUELIGHTNING1 {SPR_BLIG, 1, 2, {NULL}, 0, 0, S_BLUELIGHTNING3}, // S_BLUELIGHTNING2 diff --git a/src/p_map.c b/src/p_map.c index 7cc315ef..af8e7b4f 100644 --- a/src/p_map.c +++ b/src/p_map.c @@ -3840,7 +3840,7 @@ void P_BouncePlayerMove(mobj_t *mo) if (!mo->player) return; - if (mo->eflags & MFE_JUSTBOUNCEDWALL) + if ((mo->eflags & MFE_JUSTBOUNCEDWALL) || (mo->player->spectator)) { P_SlideMove(mo, true); return; diff --git a/src/p_mobj.c b/src/p_mobj.c index 2631654c..b828c72b 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -1761,9 +1761,11 @@ void P_XYMovement(mobj_t *mo) { P_BounceMove(mo); xmove = ymove = 0; - //S_StartSound(mo, mo->info->activesound); - //{ SRB2kart - Green Shell, Fireball - if (mo->type == MT_GREENITEM) + S_StartSound(mo, mo->info->activesound); + + //{ SRB2kart - Orbinaut, Ballhog + // Bump sparks + if (mo->type == MT_GREENITEM || mo->type == MT_BALLHOG) { mobj_t *fx; fx = P_SpawnMobj(mo->x, mo->y, mo->z, MT_BUMP); @@ -1772,6 +1774,10 @@ void P_XYMovement(mobj_t *mo) else fx->eflags &= ~MFE_VERTICALFLIP; fx->scale = mo->scale; + } + + if (mo->type == MT_GREENITEM) // Orbinaut speed decreasing + { if (mo->health > 1) { S_StartSound(mo, mo->info->attacksound); @@ -1788,10 +1794,6 @@ void P_XYMovement(mobj_t *mo) P_InstaThrust(mo, R_PointToAngle2(mo->x, mo->y, mo->x + xmove, mo->y + ymove)+ANGLE_90, 16*FRACUNIT); } } - if (mo->type == MT_FIREBALL) - S_StartSound(mo, mo->info->attacksound); - else - S_StartSound(mo, mo->info->activesound); //} // Bounce ring algorithm @@ -8120,6 +8122,7 @@ void P_MobjThinker(mobj_t *mobj) mobj->threshold--; break; case MT_BALLHOG: + P_SpawnGhostMobj(mobj)->fuse = 2; if (mobj->threshold > 0) mobj->threshold--; break; diff --git a/src/sounds.c b/src/sounds.c index 6223458d..32532612 100644 --- a/src/sounds.c +++ b/src/sounds.c @@ -294,7 +294,7 @@ sfxinfo_t S_sfx[NUMSFX] = {"s1ba", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"s1bb", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"s1bc", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, - {"s1bd", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, + {"s1bd", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, // Ballhog bounce {"s1be", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"s1bf", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"s1c0", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},