diff --git a/extras/conf/SRB2-22.cfg b/extras/conf/SRB2-22.cfg index f316cd032..7a8f31d5a 100644 --- a/extras/conf/SRB2-22.cfg +++ b/extras/conf/SRB2-22.cfg @@ -3,6 +3,7 @@ For Sonic Robo Blast 2 Version 2.2 Contributors (alphabetical): * Foxboy + * FuriousFox * JJames19119 * Kalaron * Kristos @@ -44,27 +45,32 @@ formatinterface = "SRB2MapSetIO"; //Sky textures for vanilla maps defaultskytextures { - SKY1 = "MAP01,MAP02,MAP03,MAP50,MAPA1,MAPA2,MAPA5,MAPA6,MAPA9,MAPAA,MAPAB,MAPAC,MAPAD,MAPAE,MAPAG,MAPAJ,MAPAK,MAPF0,MAPF1,MAPFA,MAPM0,MAPM8,MAPMA,MAPMB,MAPMC"; - SKY4 = "MAP04,MAP06,MAP51,MAPF8,MAPM1"; - SKY6 = "MAP05"; - SKY7 = "MAP07,MAP08,MAP09,MAP52,MAPM2,MAPM5"; - SKY10 = "MAP12,MAP53,MAPM3"; - SKY11 = "MAP10,MAP11,MAP16,MAP55,MAPF2,MAPF5,MAPF6,MAPF9,MAPM7"; - SKY13 = "MAP13,MAP54,MAPAS"; - SKY21 = "MAPAF,MAPF7,MAPM4"; - SKY22 = "MAP22,MAP23,MAP24,MAP25,MAP56,MAPAN,MAPAO,MAPF4,MAPM6"; - SKY29 = "MAP58,MAPAV"; + SKY1 = "MAP01,MAP02,MAP03,MAP33,MAP50,MAP60,MAPF0,MAPM0"; + SKY2 = "MAPM7,MAPMB"; + SKY4 = "MAP04,MAP06,MAP61,MAPF6,MAPM1"; + SKY6 = "MAP05,MAP51,MAPMA"; + SKY7 = "MAPM2,MAPM5"; + SKY8 = "MAP07,MAP08,MAP09,MAP52,MAP62,MAPF1"; + SKY10 = "MAP10,MAP12,MAP53,MAP63,MAPM3"; + SKY11 = "MAP11,MAPF7"; + SKY13 = "MAP13,MAP64"; + SKY14 = "MAP14"; + SKY15 = "MAP15,MAP54"; + SKY17 = "MAP70"; + SKY20 = "MAP32,MAP55,MAP65,MAPF2,MAPF5"; + SKY21 = "MAPM4"; + SKY22 = "MAP22,MAP23,MAP25,MAP26,MAP27,MAP56,MAP66,MAPF4,MAPM6"; SKY30 = "MAP30"; - SKY35 = "MAP41"; - SKY40 = "MAP40"; - SKY55 = "MAPF3,MAPM9"; - SKY66 = "MAPAT"; - SKY99 = "MAP57"; - SKY103 = "MAPA3,MAPA4,MAPAU"; - SKY107 = "MAPA7,MAPA8"; - SKY117 = "MAPAH,MAPAI"; - SKY127 = "MAPAR"; - SKY132 = "MAPAW"; + SKY31 = "MAP31"; + SKY35 = "MAP42"; + SKY40 = "MAP41,MAP71,MAPM9"; + SKY55 = "MAPF3,MAPM8"; + SKY68 = "MAPF8"; + SKY99 = "MAP57,MAPZ0"; + SKY159 = "MAP16"; + SKY172 = "MAP40"; + SKY300 = "MAP72"; + SKY301 = "MAP73"; } // Default lump name for new map @@ -90,9 +96,9 @@ skins Sonic; Tails; Knuckles; - Metalsonic; - Fang; Amy; + Fang; + Metalsonic; } // Gametypes @@ -3422,7 +3428,7 @@ thingtypes 121 { title = "Minus"; - sprite = "MNUSA1"; + sprite = "MNUSA0"; width = 24; height = 32; } @@ -3457,6 +3463,13 @@ thingtypes height = 34; flags8text = "[8] Start on fire"; } + 137 + { + title = "Dragonbomber"; + sprite = "DRABA1"; + width = 28; + height = 48; + } 105 { title = "Jetty-Syn Bomber"; @@ -5726,6 +5739,24 @@ thingtypes width = 24; height = 32; } + 1505 + { + title = "Green Flame"; + sprite = "CFLMA0E0"; + width = 8; + height = 32; + } + 1506 + { + arrow = 1; + blocking = 2; + title = "Blue Gargoyle"; + sprite = "BGARD1"; + width = 16; + height = 40; + flags4text = "[4] Slides when pushed"; + flags8text = "[8] Not pushable"; + } } dreamhill diff --git a/src/g_game.c b/src/g_game.c index faaed13c7..d0ea9728b 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -2997,7 +2997,7 @@ boolean G_EnoughPlayersFinished(void) continue; total++; - if (players[i].pflags & PF_FINISHED) + if ((players[i].pflags & PF_FINISHED) || players[i].exiting) exiting++; } diff --git a/src/hardware/hw_cache.c b/src/hardware/hw_cache.c index 6eaafca6d..2d4704b8b 100644 --- a/src/hardware/hw_cache.c +++ b/src/hardware/hw_cache.c @@ -771,18 +771,25 @@ void HWR_InitTextureCache(void) gr_textures2 = NULL; } - // Callback function for HWR_FreeTextureCache. static void FreeMipmapColormap(INT32 patchnum, void *patch) { - GLPatch_t* const grpatch = patch; + GLPatch_t* const pat = patch; (void)patchnum; //unused - while (grpatch->mipmap->nextcolormap) + while (pat->mipmap && pat->mipmap->nextcolormap) // The mipmap must be valid, obviously { - GLMipmap_t *grmip = grpatch->mipmap->nextcolormap; - grpatch->mipmap->nextcolormap = grmip->nextcolormap; - if (grmip->grInfo.data) Z_Free(grmip->grInfo.data); - free(grmip); + // Confusing at first, but pat->mipmap->nextcolormap + // at the beginning of the loop is the first colormap + // from the linked list of colormaps + GLMipmap_t *next = pat->mipmap->nextcolormap; + // Set the first colormap + // to the one that comes after it + pat->mipmap->nextcolormap = next->nextcolormap; + // Free image data from memory + if (next->grInfo.data) + Z_Free(next->grInfo.data); + // Free the old colormap from memory + free(next); } } @@ -799,7 +806,7 @@ void HWR_FreeTextureCache(void) // Alam: free the Z_Blocks before freeing it's users - // free all skin after each level: must be done after pfnClearMipMapCache! + // free all patch colormaps after each level: must be done after ClearMipMapCache! for (i = 0; i < numwadfiles; i++) M_AATreeIterate(wadfiles[i]->hwrcache, FreeMipmapColormap); diff --git a/src/p_user.c b/src/p_user.c index 7d7cc48c1..8df21e58f 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -11470,7 +11470,7 @@ void P_PlayerThink(player_t *player) if (player->pflags & PF_FINISHED) { - if (cv_exitmove.value && !G_EnoughPlayersFinished()) + if ((gametype == GT_COOP && cv_exitmove.value) && !G_EnoughPlayersFinished()) player->exiting = 0; else P_DoPlayerExit(player); diff --git a/src/sounds.c b/src/sounds.c index ba2402eb9..c9aff6edc 100644 --- a/src/sounds.c +++ b/src/sounds.c @@ -92,7 +92,7 @@ sfxinfo_t S_sfx[NUMSFX] = {"pstop", false, 100, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Crusher stomp"}, {"steam1", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Steam jet"}, // Tails 06-19-2001 {"steam2", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Steam jet"}, // Tails 06-19-2001 - {"wbreak", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Wood breaking"}, + {"wbreak", true, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Wood breaking"}, {"ambmac", false, 60, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Machinery"}, {"spsmsh", false, 60, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Heavy impact"},