diff --git a/src/d_main.c b/src/d_main.c index 27ee40926..2419f419b 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -1069,6 +1069,7 @@ static void IdentifyVersion(void) D_AddFile(startupiwads, va(pandf,srb2waddir,"textures.pk3")); D_AddFile(startupiwads, va(pandf,srb2waddir,"chars.pk3")); D_AddFile(startupiwads, va(pandf,srb2waddir,"maps.pk3")); + D_AddFile(startupiwads, va(pandf,srb2waddir,"followers.pk3")); #ifdef USE_PATCH_FILE D_AddFile(startupiwads, va(pandf,srb2waddir,"patch.pk3")); #endif @@ -1317,6 +1318,7 @@ void D_SRB2Main(void) mainwads++; W_VerifyFileMD5(mainwads, ASSET_HASH_TEXTURES_PK3); // textures.pk3 mainwads++; W_VerifyFileMD5(mainwads, ASSET_HASH_CHARS_PK3); // chars.pk3 mainwads++; W_VerifyFileMD5(mainwads, ASSET_HASH_MAPS_PK3); // maps.pk3 -- 4 - If you touch this, make sure to touch up the majormods stuff below. + mainwads++; W_VerifyFileMd5(mainwads, ASSET_HASH_FOLLOWERS_PK3); // followers.pk3 #ifdef USE_PATCH_FILE mainwads++; W_VerifyFileMD5(mainwads, ASSET_HASH_PATCH_PK3); // patch.pk3 #endif @@ -1325,6 +1327,7 @@ void D_SRB2Main(void) mainwads++; // textures.pk3 mainwads++; // chars.pk3 mainwads++; // maps.pk3 + mainwads++; // followers.pk3 #ifdef USE_PATCH_FILE mainwads++; // patch.pk3 #endif diff --git a/src/d_netfil.c b/src/d_netfil.c index 7aec8d13e..2eaf3e7d5 100644 --- a/src/d_netfil.c +++ b/src/d_netfil.c @@ -459,7 +459,12 @@ INT32 CL_CheckFiles(void) if (modifiedgame) { CONS_Debug(DBG_NETPLAY, "game is modified; only doing basic checks\n"); - for (i = 0, j = mainwads+1; i < fileneedednum || j < numwadfiles;) +#ifdef DEVELOP + j = 0; +#else + j = mainwads + 1; +#endif + for (i = 0; i < fileneedednum || j < numwadfiles;) { if (j < numwadfiles && !wadfiles[j]->important) { diff --git a/src/deh_tables.c b/src/deh_tables.c index e7e211f0c..b1f5d148a 100644 --- a/src/deh_tables.c +++ b/src/deh_tables.c @@ -5806,6 +5806,8 @@ const char *const MOBJFLAG_LIST[] = { "GRENADEBOUNCE", "RUNSPAWNFUNC", "DONTENCOREMAP", + "PICKUPFROMBELOW", + "NOSQUISH", NULL }; diff --git a/src/mserv.c b/src/mserv.c index c91c59167..b9333f517 100644 --- a/src/mserv.c +++ b/src/mserv.c @@ -61,6 +61,8 @@ static void MasterServer_OnChange(void); static void Advertise_OnChange(void); +static void RendezvousServer_OnChange(void); + static CV_PossibleValue_t masterserver_update_rate_cons_t[] = { {2, "MIN"}, {60, "MAX"}, @@ -68,7 +70,7 @@ static CV_PossibleValue_t masterserver_update_rate_cons_t[] = { }; consvar_t cv_masterserver = CVAR_INIT ("masterserver", "https://ms.kartkrew.org/ms/api", CV_SAVE|CV_CALL, NULL, MasterServer_OnChange); -consvar_t cv_rendezvousserver = CVAR_INIT ("rendezvousserver", "jart-dev.jameds.org", CV_SAVE, NULL, NULL); +consvar_t cv_rendezvousserver = CVAR_INIT ("rendezvousserver", "relay.kartkrew.org", CV_SAVE|CV_CALL, NULL, RendezvousServer_OnChange); consvar_t cv_servername = CVAR_INIT ("servername", "SRB2Kart server", CV_SAVE|CV_CALL|CV_NOINIT, NULL, Update_parameters); consvar_t cv_server_contact = CVAR_INIT ("server_contact", "", CV_SAVE|CV_CALL|CV_NOINIT, NULL, Update_parameters); @@ -515,17 +517,6 @@ static void MasterServer_OnChange(void) #ifdef MASTERSERVER UnregisterServer(); - /* - TODO: remove this for v2, it's just a hack - for those coming in with an old config. - */ - if ( - ! cv_masterserver.changed && - strcmp(cv_masterserver.string, "ms.srb2.org:28900") == 0 - ){ - CV_StealthSet(&cv_masterserver, cv_masterserver.defaultvalue); - } - Set_api(cv_masterserver.string); if (Online()) @@ -563,3 +554,16 @@ Advertise_OnChange(void) DRPC_UpdatePresence(); #endif } + +#ifdef DEVELOP +static void +RendezvousServer_OnChange (void) +{ + consvar_t *cvar = &cv_rendezvousserver; + + if (!strcmp(cvar->string, "jart-dev.jameds.org")) + CV_StealthSet(cvar, cvar->defaultvalue); +} +#else +#error "This was an indev thing, remove at release." +#endif diff --git a/src/p_mobj.c b/src/p_mobj.c index 732706500..3b664cb49 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -3668,7 +3668,8 @@ static void P_CheckFloatbobPlatforms(mobj_t *mobj) static void P_SquishThink(mobj_t *mobj) { - if (!(mobj->eflags & MFE_SLOPELAUNCHED)) + if (!(mobj->flags & MF_NOSQUISH) && + !(mobj->eflags & MFE_SLOPELAUNCHED)) { K_Squish(mobj); } diff --git a/src/p_mobj.h b/src/p_mobj.h index 9d73c433b..53614c5dd 100644 --- a/src/p_mobj.h +++ b/src/p_mobj.h @@ -159,6 +159,8 @@ typedef enum MF_DONTENCOREMAP = 1<<28, // Hitbox extends just as far below as above. MF_PICKUPFROMBELOW = 1<<29, + // Disable momentum-based squash and stretch. + MF_NOSQUISH = 1<<30, // free: to and including 1<<31 } mobjflag_t; diff --git a/src/r_things.c b/src/r_things.c index bbfd15928..8636eeef0 100644 --- a/src/r_things.c +++ b/src/r_things.c @@ -284,14 +284,13 @@ boolean R_AddSingleSpriteDef(const char *sprname, spritedef_t *spritedef, UINT16 // store sprite info in lookup tables //FIXME : numspritelumps do not duplicate sprite replacements + W_ReadLumpHeaderPwad(wadnum, l, &patch, PNG_HEADER_SIZE, 0); + #ifndef NO_PNG_LUMPS { - UINT8 header[PNG_HEADER_SIZE]; size_t len = W_LumpLengthPwad(wadnum, l); - W_ReadLumpHeaderPwad(wadnum, l, header, sizeof header, 0); - - if (Picture_IsLumpPNG(header, len)) + if (Picture_IsLumpPNG((UINT8*)&patch, len)) { UINT8 *png = W_CacheLumpNumPwad(wadnum, l, PU_STATIC); Picture_PNGDimensions((UINT8 *)png, &width, &height, &topoffset, &leftoffset, len); @@ -303,7 +302,6 @@ boolean R_AddSingleSpriteDef(const char *sprname, spritedef_t *spritedef, UINT16 if (!isPNG) #endif { - W_ReadLumpHeaderPwad(wadnum, l, &patch, sizeof(INT16) * 4, 0); width = (INT32)(SHORT(patch.width)); height = (INT32)(SHORT(patch.height)); topoffset = (INT16)(SHORT(patch.topoffset)); @@ -2100,8 +2098,7 @@ static void R_ProjectSprite(mobj_t *thing) // // determine the colormap (lightlevel & special effects) // - if (vis->cut & SC_FULLBRIGHT - && (!vis->extra_colormap || !(vis->extra_colormap->flags & CMF_FADEFULLBRIGHTSPRITES))) + if (vis->cut & SC_FULLBRIGHT) { // full bright: goggles vis->colormap = colormaps;