mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-27 04:21:47 +00:00
Most items work (netgame needs testing), will do fireballs later.
This commit is contained in:
parent
98137822b8
commit
f50ecc0dcd
27 changed files with 191 additions and 93 deletions
|
|
@ -12,12 +12,12 @@
|
||||||
int srb2_main()
|
int srb2_main()
|
||||||
{
|
{
|
||||||
// startup SRB2
|
// startup SRB2
|
||||||
CONS_Printf ("Setting up SRB2 (fo' real)...");
|
CONS_Printf ("Setting up SRB2Kart (fo' real)...");
|
||||||
D_SRB2Main();
|
D_SRB2Main();
|
||||||
CONS_Printf ("Entering main game loop...");
|
CONS_Printf ("Entering main game loop...");
|
||||||
// never return
|
// never return
|
||||||
D_SRB2Loop();
|
D_SRB2Loop();
|
||||||
LOGD("Control left SRB2. Good bye.");
|
LOGD("Control left SRB2Kart. Good bye.");
|
||||||
|
|
||||||
// return to OS
|
// return to OS
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,7 @@ ticcmd_t *I_BaseTiccmd2(void)
|
||||||
|
|
||||||
void I_Quit(void)
|
void I_Quit(void)
|
||||||
{
|
{
|
||||||
LOGD("SRB2 quitting!");
|
LOGD("SRB2Kart quitting!");
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1314,7 +1314,7 @@ void CONS_Error(const char *msg)
|
||||||
#ifdef RPC_NO_WINDOWS_H
|
#ifdef RPC_NO_WINDOWS_H
|
||||||
if (!graphics_started)
|
if (!graphics_started)
|
||||||
{
|
{
|
||||||
MessageBoxA(vid.WndParent, msg, "SRB2 Warning", MB_OK);
|
MessageBoxA(vid.WndParent, msg, "SRB2Kart Warning", MB_OK);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -1783,7 +1783,7 @@ static boolean CL_ServerConnectionSearchTicker(boolean viams, tic_t *asksent)
|
||||||
"modified the game in some way, and\n"
|
"modified the game in some way, and\n"
|
||||||
"your file list does not match\n"
|
"your file list does not match\n"
|
||||||
"the server's file list.\n"
|
"the server's file list.\n"
|
||||||
"Please restart SRB2 before connecting.\n\n"
|
"Please restart SRB2Kart before connecting.\n\n"
|
||||||
"Press ESC\n"
|
"Press ESC\n"
|
||||||
), NULL, MM_NOTHING);
|
), NULL, MM_NOTHING);
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -3617,7 +3617,7 @@ static void DEH_LoadDehackedFile(MYFILE *f, UINT16 wad)
|
||||||
{
|
{
|
||||||
INT32 ver = searchvalue(strtok(NULL, "\n"));
|
INT32 ver = searchvalue(strtok(NULL, "\n"));
|
||||||
if (ver != PATCHVERSION)
|
if (ver != PATCHVERSION)
|
||||||
deh_warning("Patch is for SRB2 version %d,\nonly version %d is supported", ver, PATCHVERSION);
|
deh_warning("Patch is for SRB2Kart version %d,\nonly version %d is supported", ver, PATCHVERSION);
|
||||||
//DEH_WriteUndoline(word, va("%d", ver), UNDO_NONE);
|
//DEH_WriteUndoline(word, va("%d", ver), UNDO_NONE);
|
||||||
}
|
}
|
||||||
// Clear all data in certain locations (mostly for unlocks)
|
// Clear all data in certain locations (mostly for unlocks)
|
||||||
|
|
|
||||||
|
|
@ -142,17 +142,17 @@ 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
|
#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
|
#ifdef DEVELOP
|
||||||
#define VERSION 101 // Game version
|
#define VERSION 102 // Game version
|
||||||
#define SUBVERSION 4 // more precise version number
|
#define SUBVERSION 0 // more precise version number
|
||||||
#define VERSIONSTRING "Development EXE"
|
#define VERSIONSTRING "Development EXE"
|
||||||
#define VERSIONSTRINGW "v1.1.04"
|
#define VERSIONSTRINGW "v1.2.00"
|
||||||
// most interface strings are ignored in development mode.
|
// most interface strings are ignored in development mode.
|
||||||
// we use comprevision and compbranch instead.
|
// we use comprevision and compbranch instead.
|
||||||
#else
|
#else
|
||||||
#define VERSION 101 // Game version
|
#define VERSION 102 // Game version
|
||||||
#define SUBVERSION 4 // more precise version number
|
#define SUBVERSION 0 // more precise version number
|
||||||
#define VERSIONSTRING "DevEXE v1.1.04"
|
#define VERSIONSTRING "DevEXE v1.2.00"
|
||||||
#define VERSIONSTRINGW L"v1.1.04"
|
#define VERSIONSTRINGW L"v1.2.00"
|
||||||
// Hey! If you change this, add 1 to the MODVERSION below!
|
// Hey! If you change this, add 1 to the MODVERSION below!
|
||||||
// Otherwise we can't force updates!
|
// Otherwise we can't force updates!
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -3188,7 +3188,7 @@ void G_LoadGameData(void)
|
||||||
// Version check
|
// Version check
|
||||||
if (READUINT32(save_p) != 0xFCAFE211)
|
if (READUINT32(save_p) != 0xFCAFE211)
|
||||||
{
|
{
|
||||||
const char *gdfolder = "the SRB2 folder";
|
const char *gdfolder = "the SRB2Kart folder";
|
||||||
if (strcmp(srb2home,"."))
|
if (strcmp(srb2home,"."))
|
||||||
gdfolder = srb2home;
|
gdfolder = srb2home;
|
||||||
|
|
||||||
|
|
@ -3298,7 +3298,7 @@ void G_LoadGameData(void)
|
||||||
// Landing point for corrupt gamedata
|
// Landing point for corrupt gamedata
|
||||||
datacorrupt:
|
datacorrupt:
|
||||||
{
|
{
|
||||||
const char *gdfolder = "the SRB2 folder";
|
const char *gdfolder = "the SRB2Kart folder";
|
||||||
if (strcmp(srb2home,"."))
|
if (strcmp(srb2home,"."))
|
||||||
gdfolder = srb2home;
|
gdfolder = srb2home;
|
||||||
|
|
||||||
|
|
@ -5106,7 +5106,7 @@ void G_DoPlayDemo(char *defdemoname)
|
||||||
demoplayback = true;
|
demoplayback = true;
|
||||||
if (memcmp(demo_p, DEMOHEADER, 12))
|
if (memcmp(demo_p, DEMOHEADER, 12))
|
||||||
{
|
{
|
||||||
snprintf(msg, 1024, M_GetText("%s is not a SRB2 replay file.\n"), pdemoname);
|
snprintf(msg, 1024, M_GetText("%s is not a SRB2Kart replay file.\n"), pdemoname);
|
||||||
CONS_Alert(CONS_ERROR, "%s", msg);
|
CONS_Alert(CONS_ERROR, "%s", msg);
|
||||||
M_StartMessage(msg, NULL, MM_NOTHING);
|
M_StartMessage(msg, NULL, MM_NOTHING);
|
||||||
Z_Free(pdemoname);
|
Z_Free(pdemoname);
|
||||||
|
|
@ -5342,7 +5342,7 @@ void G_AddGhost(char *defdemoname)
|
||||||
// read demo header
|
// read demo header
|
||||||
if (memcmp(p, DEMOHEADER, 12))
|
if (memcmp(p, DEMOHEADER, 12))
|
||||||
{
|
{
|
||||||
CONS_Alert(CONS_NOTICE, M_GetText("Ghost %s: Not a SRB2 replay.\n"), pdemoname);
|
CONS_Alert(CONS_NOTICE, M_GetText("Ghost %s: Not a SRB2Kart replay.\n"), pdemoname);
|
||||||
Z_Free(pdemoname);
|
Z_Free(pdemoname);
|
||||||
Z_Free(buffer);
|
Z_Free(buffer);
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
// tell r_opengl.cpp to compile for ATI Rage Pro OpenGL driver
|
// tell r_opengl.cpp to compile for ATI Rage Pro OpenGL driver
|
||||||
//#define ATI_RAGE_PRO_COMPATIBILITY
|
//#define ATI_RAGE_PRO_COMPATIBILITY
|
||||||
|
|
||||||
#define DRIVER_STRING "HWRAPI Init(): SRB2 MiniGL renderer"
|
#define DRIVER_STRING "HWRAPI Init(): SRB2Kart MiniGL renderer"
|
||||||
|
|
||||||
// Include this at end
|
// Include this at end
|
||||||
#include "../r_opengl/r_opengl.c"
|
#include "../r_opengl/r_opengl.c"
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ extern FILE *gllogstream;
|
||||||
|
|
||||||
#ifndef DRIVER_STRING
|
#ifndef DRIVER_STRING
|
||||||
// #define USE_PALETTED_TEXTURE
|
// #define USE_PALETTED_TEXTURE
|
||||||
#define DRIVER_STRING "HWRAPI Init(): SRB2 OpenGL renderer" // Tails
|
#define DRIVER_STRING "HWRAPI Init(): SRB2Kart OpenGL renderer" // Tails
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// ==========================================================================
|
// ==========================================================================
|
||||||
|
|
|
||||||
|
|
@ -443,7 +443,7 @@ EXPORT INT32 HWRAPI(Startup) (I_Error_t FatalErrorFunction, snddev_t *snd_dev)
|
||||||
return inited;
|
return inited;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
DBG_Printf("S_FMOD Init(): FMOD_SOUND driver for SRB2 %s\n",VERSIONSTRING);
|
DBG_Printf("S_FMOD Init(): FMOD_SOUND driver for SRB2Kart %s\n",VERSIONSTRING);
|
||||||
|
|
||||||
if (!FSOUND_SetMinHardwareChannels(STATIC_SOURCES_NUM*4))
|
if (!FSOUND_SetMinHardwareChannels(STATIC_SOURCES_NUM*4))
|
||||||
DBG_Printf("FMOD(Startup,FSOUND_SetMinHardwareChannels,# of Channels Min: %i): %s\n",STATIC_SOURCES_NUM*4, FMOD_ErrorString(FSOUND_GetError()));
|
DBG_Printf("FMOD(Startup,FSOUND_SetMinHardwareChannels,# of Channels Min: %i): %s\n",STATIC_SOURCES_NUM*4, FMOD_ErrorString(FSOUND_GetError()));
|
||||||
|
|
|
||||||
85
src/info.c
85
src/info.c
|
|
@ -2618,14 +2618,14 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_BANA, 0, -1, {NULL}, 0, 0, S_NULL}, // S_BANANAITEM
|
{SPR_BANA, 0, -1, {NULL}, 0, 0, S_NULL}, // S_BANANAITEM
|
||||||
{SPR_DBAN, 0, 175, {NULL}, 0, 0, S_NULL}, // S_DEADBANANA
|
{SPR_DBAN, 0, 175, {NULL}, 0, 0, S_NULL}, // S_DEADBANANA
|
||||||
|
|
||||||
{SPR_GSHE, 0, 2, {A_RotateSpikeBall}, 0, 0, S_TRIPLEGREENSHIELD2}, // S_TRIPLEGREENSHIELD1
|
{SPR_GSHE, 0, 2, {NULL}, 0, 0, S_TRIPLEGREENSHIELD2}, // S_TRIPLEGREENSHIELD1
|
||||||
{SPR_GSHE, 1, 2, {A_RotateSpikeBall}, 0, 0, S_TRIPLEGREENSHIELD3}, // S_TRIPLEGREENSHIELD2
|
{SPR_GSHE, 1, 2, {NULL}, 0, 0, S_TRIPLEGREENSHIELD3}, // S_TRIPLEGREENSHIELD2
|
||||||
{SPR_GSHE, 2, 2, {A_RotateSpikeBall}, 0, 0, S_TRIPLEGREENSHIELD4}, // S_TRIPLEGREENSHIELD3
|
{SPR_GSHE, 2, 2, {NULL}, 0, 0, S_TRIPLEGREENSHIELD4}, // S_TRIPLEGREENSHIELD3
|
||||||
{SPR_GSHE, 3, 2, {A_RotateSpikeBall}, 0, 0, S_TRIPLEGREENSHIELD5}, // S_TRIPLEGREENSHIELD4
|
{SPR_GSHE, 3, 2, {NULL}, 0, 0, S_TRIPLEGREENSHIELD5}, // S_TRIPLEGREENSHIELD4
|
||||||
{SPR_GSHE, 4, 2, {A_RotateSpikeBall}, 0, 0, S_TRIPLEGREENSHIELD6}, // S_TRIPLEGREENSHIELD5
|
{SPR_GSHE, 4, 2, {NULL}, 0, 0, S_TRIPLEGREENSHIELD6}, // S_TRIPLEGREENSHIELD5
|
||||||
{SPR_GSHE, 5, 2, {A_RotateSpikeBall}, 0, 0, S_TRIPLEGREENSHIELD7}, // S_TRIPLEGREENSHIELD6
|
{SPR_GSHE, 5, 2, {NULL}, 0, 0, S_TRIPLEGREENSHIELD7}, // S_TRIPLEGREENSHIELD6
|
||||||
{SPR_GSHE, 6, 2, {A_RotateSpikeBall}, 0, 0, S_TRIPLEGREENSHIELD8}, // S_TRIPLEGREENSHIELD7
|
{SPR_GSHE, 6, 2, {NULL}, 0, 0, S_TRIPLEGREENSHIELD8}, // S_TRIPLEGREENSHIELD7
|
||||||
{SPR_GSHE, 7, 2, {A_RotateSpikeBall}, 0, 0, S_TRIPLEGREENSHIELD1}, // S_TRIPLEGREENSHIELD8
|
{SPR_GSHE, 7, 2, {NULL}, 0, 0, S_TRIPLEGREENSHIELD1}, // S_TRIPLEGREENSHIELD8
|
||||||
{SPR_GSHE, 0, 2, {NULL}, 0, 0, S_GREENSHIELD2}, // S_GREENSHIELD1
|
{SPR_GSHE, 0, 2, {NULL}, 0, 0, S_GREENSHIELD2}, // S_GREENSHIELD1
|
||||||
{SPR_GSHE, 1, 2, {NULL}, 0, 0, S_GREENSHIELD3}, // S_GREENSHIELD2
|
{SPR_GSHE, 1, 2, {NULL}, 0, 0, S_GREENSHIELD3}, // S_GREENSHIELD2
|
||||||
{SPR_GSHE, 2, 2, {NULL}, 0, 0, S_GREENSHIELD4}, // S_GREENSHIELD3
|
{SPR_GSHE, 2, 2, {NULL}, 0, 0, S_GREENSHIELD4}, // S_GREENSHIELD3
|
||||||
|
|
@ -2653,14 +2653,14 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_GSTR, 8, 1, {NULL}, 0, 0, S_NULL}, // S_GREENTRAIL9
|
{SPR_GSTR, 8, 1, {NULL}, 0, 0, S_NULL}, // S_GREENTRAIL9
|
||||||
{SPR_DGSH, 0, 175, {NULL}, 0, 0, S_NULL}, // S_DEADGREEN
|
{SPR_DGSH, 0, 175, {NULL}, 0, 0, S_NULL}, // S_DEADGREEN
|
||||||
|
|
||||||
{SPR_RSHE, 0, 2, {A_RotateSpikeBall}, 0, 0, S_TRIPLEREDSHIELD2}, // S_TRIPLEREDSHIELD1
|
{SPR_RSHE, 0, 2, {NULL}, 0, 0, S_TRIPLEREDSHIELD2}, // S_TRIPLEREDSHIELD1
|
||||||
{SPR_RSHE, 1, 2, {A_RotateSpikeBall}, 0, 0, S_TRIPLEREDSHIELD3}, // S_TRIPLEREDSHIELD2
|
{SPR_RSHE, 1, 2, {NULL}, 0, 0, S_TRIPLEREDSHIELD3}, // S_TRIPLEREDSHIELD2
|
||||||
{SPR_RSHE, 2, 2, {A_RotateSpikeBall}, 0, 0, S_TRIPLEREDSHIELD4}, // S_TRIPLEREDSHIELD3
|
{SPR_RSHE, 2, 2, {NULL}, 0, 0, S_TRIPLEREDSHIELD4}, // S_TRIPLEREDSHIELD3
|
||||||
{SPR_RSHE, 3, 2, {A_RotateSpikeBall}, 0, 0, S_TRIPLEREDSHIELD5}, // S_TRIPLEREDSHIELD4
|
{SPR_RSHE, 3, 2, {NULL}, 0, 0, S_TRIPLEREDSHIELD5}, // S_TRIPLEREDSHIELD4
|
||||||
{SPR_RSHE, 4, 2, {A_RotateSpikeBall}, 0, 0, S_TRIPLEREDSHIELD6}, // S_TRIPLEREDSHIELD5
|
{SPR_RSHE, 4, 2, {NULL}, 0, 0, S_TRIPLEREDSHIELD6}, // S_TRIPLEREDSHIELD5
|
||||||
{SPR_RSHE, 5, 2, {A_RotateSpikeBall}, 0, 0, S_TRIPLEREDSHIELD7}, // S_TRIPLEREDSHIELD6
|
{SPR_RSHE, 5, 2, {NULL}, 0, 0, S_TRIPLEREDSHIELD7}, // S_TRIPLEREDSHIELD6
|
||||||
{SPR_RSHE, 6, 2, {A_RotateSpikeBall}, 0, 0, S_TRIPLEREDSHIELD8}, // S_TRIPLEREDSHIELD7
|
{SPR_RSHE, 6, 2, {NULL}, 0, 0, S_TRIPLEREDSHIELD8}, // S_TRIPLEREDSHIELD7
|
||||||
{SPR_RSHE, 7, 2, {A_RotateSpikeBall}, 0, 0, S_TRIPLEREDSHIELD1}, // S_TRIPLEREDSHIELD8
|
{SPR_RSHE, 7, 2, {NULL}, 0, 0, S_TRIPLEREDSHIELD1}, // S_TRIPLEREDSHIELD8
|
||||||
{SPR_RSHE, 0, 2, {NULL}, 0, 0, S_REDSHIELD2}, // S_REDSHIELD1
|
{SPR_RSHE, 0, 2, {NULL}, 0, 0, S_REDSHIELD2}, // S_REDSHIELD1
|
||||||
{SPR_RSHE, 1, 2, {NULL}, 0, 0, S_REDSHIELD3}, // S_REDSHIELD2
|
{SPR_RSHE, 1, 2, {NULL}, 0, 0, S_REDSHIELD3}, // S_REDSHIELD2
|
||||||
{SPR_RSHE, 2, 2, {NULL}, 0, 0, S_REDSHIELD4}, // S_REDSHIELD3
|
{SPR_RSHE, 2, 2, {NULL}, 0, 0, S_REDSHIELD4}, // S_REDSHIELD3
|
||||||
|
|
@ -2699,12 +2699,12 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_BLIG, 1, 2, {NULL}, 0, 0, S_BLUELIGHTNING3}, // S_BLUELIGHTNING2
|
{SPR_BLIG, 1, 2, {NULL}, 0, 0, S_BLUELIGHTNING3}, // S_BLUELIGHTNING2
|
||||||
{SPR_BLIG, 2, 2, {NULL}, 0, 0, S_BLUELIGHTNING4}, // S_BLUELIGHTNING3
|
{SPR_BLIG, 2, 2, {NULL}, 0, 0, S_BLUELIGHTNING4}, // S_BLUELIGHTNING3
|
||||||
{SPR_BLIG, 3, 2, {NULL}, 0, 0, S_NULL}, // S_BLUELIGHTNING4
|
{SPR_BLIG, 3, 2, {NULL}, 0, 0, S_NULL}, // S_BLUELIGHTNING4
|
||||||
{SPR_NULL, 0, 1, {A_BobombExplode}, MT_BLUEEXPLOSION, 0, S_NULL}, // S_BLUEEXPLODE
|
{SPR_BOMB, 0, 1, {A_BobombExplode}, MT_BLUEEXPLOSION, 0, S_NULL}, // S_BLUEEXPLODE
|
||||||
|
|
||||||
{SPR_LIGH, 0, 2, {NULL}, 0, 0, S_LIGHTNING2}, // S_LIGHTNING1
|
{SPR_LIGH, 0, 2, {NULL}, 0, 0, S_LIGHTNING2}, // S_LIGHTNING1
|
||||||
{SPR_LIGH, 0, 2, {NULL}, 0, 0, S_LIGHTNING3}, // S_LIGHTNING2
|
{SPR_LIGH, 1, 2, {NULL}, 0, 0, S_LIGHTNING3}, // S_LIGHTNING2
|
||||||
{SPR_LIGH, 0, 2, {NULL}, 0, 0, S_LIGHTNING4}, // S_LIGHTNING3
|
{SPR_LIGH, 2, 2, {NULL}, 0, 0, S_LIGHTNING4}, // S_LIGHTNING3
|
||||||
{SPR_LIGH, 0, 2, {NULL}, 0, 0, S_NULL}, // S_LIGHTNING4
|
{SPR_LIGH, 3, 2, {NULL}, 0, 0, S_NULL}, // S_LIGHTNING4
|
||||||
|
|
||||||
{SPR_SINK, 0, 4, {A_SmokeTrailer}, MT_SINKTRAIL, 0, S_SINK}, // S_SINK
|
{SPR_SINK, 0, 4, {A_SmokeTrailer}, MT_SINKTRAIL, 0, S_SINK}, // S_SINK
|
||||||
{SPR_SITR, 0, 1, {NULL}, 0, 0, S_SINKTRAIL2}, // S_SINKTRAIL1
|
{SPR_SITR, 0, 1, {NULL}, 0, 0, S_SINKTRAIL2}, // S_SINKTRAIL1
|
||||||
|
|
@ -14841,6 +14841,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{ // MT_BOMBEXPLOSIONSOUND
|
||||||
|
-1, // doomednum
|
||||||
|
S_INVISIBLE, // spawnstate
|
||||||
|
100, // spawnhealth
|
||||||
|
S_NULL, // seestate
|
||||||
|
sfx_None, // seesound
|
||||||
|
8, // reactiontime
|
||||||
|
sfx_None, // attacksound
|
||||||
|
S_NULL, // painstate
|
||||||
|
0, // painchance
|
||||||
|
sfx_None, // painsound
|
||||||
|
S_NULL, // meleestate
|
||||||
|
S_NULL, // missilestate
|
||||||
|
S_NULL, // deathstate
|
||||||
|
S_NULL, // xdeathstate
|
||||||
|
sfx_None, // deathsound
|
||||||
|
0, // speed
|
||||||
|
16*FRACUNIT, // radius
|
||||||
|
16*FRACUNIT, // height
|
||||||
|
0, // display offset
|
||||||
|
100, // mass
|
||||||
|
0, // damage
|
||||||
|
sfx_None, // activesound
|
||||||
|
MF_NOBLOCKMAP|MF_NOSECTOR|MF_NOGRAVITY, // flags
|
||||||
|
S_NULL // raisestate
|
||||||
|
},
|
||||||
|
|
||||||
{ // MT_BLUELIGHTNING
|
{ // MT_BLUELIGHTNING
|
||||||
-1, // doomednum
|
-1, // doomednum
|
||||||
S_BLUELIGHTNING1, // spawnstate
|
S_BLUELIGHTNING1, // spawnstate
|
||||||
|
|
@ -14870,8 +14897,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
|
|
||||||
{ // MT_BLUEEXPLOSION
|
{ // MT_BLUEEXPLOSION
|
||||||
-1, // doomednum
|
-1, // doomednum
|
||||||
S_BLUEEXPLODE, // spawnstate
|
S_INVISIBLE, // spawnstate
|
||||||
1000, // spawnhealth
|
1, // spawnhealth
|
||||||
S_NULL, // seestate
|
S_NULL, // seestate
|
||||||
sfx_None, // seesound
|
sfx_None, // seesound
|
||||||
8, // reactiontime
|
8, // reactiontime
|
||||||
|
|
@ -14881,17 +14908,17 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
sfx_None, // painsound
|
sfx_None, // painsound
|
||||||
S_NULL, // meleestate
|
S_NULL, // meleestate
|
||||||
S_NULL, // missilestate
|
S_NULL, // missilestate
|
||||||
S_NULL, // deathstate
|
S_BOMBEXPLODE, // deathstate
|
||||||
S_NULL, // xdeathstate
|
S_NULL, // xdeathstate
|
||||||
sfx_None, // deathsound
|
sfx_None, // deathsound
|
||||||
8, // speed
|
0, // speed
|
||||||
64*FRACUNIT, // radius
|
16*FRACUNIT, // radius
|
||||||
64*FRACUNIT, // height
|
24*FRACUNIT, // height
|
||||||
0, // display offset
|
0, // display offset
|
||||||
16, // mass
|
100, // mass
|
||||||
0, // damage
|
1, // damage
|
||||||
sfx_None, // activesound
|
sfx_None, // activesound
|
||||||
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOGRAVITY|MF_SCENERY|MF_RUNSPAWNFUNC, // flags
|
MF_BOUNCE|MF_FLOAT|MF_NOCLIPTHING|MF_MISSILE|MF_SHOOTABLE, // flags
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3781,6 +3781,7 @@ typedef enum mobj_type
|
||||||
MT_BOMBSHIELD, // Bob-omb stuff
|
MT_BOMBSHIELD, // Bob-omb stuff
|
||||||
MT_BOMBITEM,
|
MT_BOMBITEM,
|
||||||
MT_BOMBEXPLOSION,
|
MT_BOMBEXPLOSION,
|
||||||
|
MT_BOMBEXPLOSIONSOUND,
|
||||||
|
|
||||||
MT_BLUELIGHTNING, // Lightning stuff
|
MT_BLUELIGHTNING, // Lightning stuff
|
||||||
MT_BLUEEXPLOSION,
|
MT_BLUEEXPLOSION,
|
||||||
|
|
|
||||||
32
src/k_kart.c
32
src/k_kart.c
|
|
@ -313,13 +313,13 @@ static fixed_t K_KartItemOdds_Retro[MAXPLAYERS][NUMKARTITEMS][MAXPLAYERS] =
|
||||||
{ //1st //
|
{ //1st //
|
||||||
{ 0 }, // Magnet
|
{ 0 }, // Magnet
|
||||||
{ 0 }, // Boo
|
{ 0 }, // Boo
|
||||||
{ 0 }, // Mushroom
|
{ 40 }, // Mushroom
|
||||||
{ 0 }, // Triple Mushroom
|
{ 0 }, // Triple Mushroom
|
||||||
{ 0 }, // Mega Mushroom
|
{ 0 }, // Mega Mushroom
|
||||||
{ 0 }, // Gold Mushroom
|
{ 0 }, // Gold Mushroom
|
||||||
{ 0 }, // Star
|
{ 0 }, // Star
|
||||||
{ 0 }, // Triple Banana
|
{ 0 }, // Triple Banana
|
||||||
{ 40 }, // Fake Item
|
{ 0 }, // Fake Item
|
||||||
{ 0 }, // Banana
|
{ 0 }, // Banana
|
||||||
{ 0 }, // Green Shell
|
{ 0 }, // Green Shell
|
||||||
{ 0 }, // Red Shell
|
{ 0 }, // Red Shell
|
||||||
|
|
@ -844,7 +844,7 @@ static void K_KartItemRoulette(player_t *player, ticcmd_t *cmd)
|
||||||
if (cv_triplegreenshell.value) K_KartSetItemResult(ppos, 13); // Triple Green Shell
|
if (cv_triplegreenshell.value) K_KartSetItemResult(ppos, 13); // Triple Green Shell
|
||||||
if (cv_bobomb.value) K_KartSetItemResult(ppos, 14); // Bob-omb
|
if (cv_bobomb.value) K_KartSetItemResult(ppos, 14); // Bob-omb
|
||||||
if (cv_blueshell.value && pexiting == 0) K_KartSetItemResult(ppos, 15); // Blue Shell
|
if (cv_blueshell.value && pexiting == 0) K_KartSetItemResult(ppos, 15); // Blue Shell
|
||||||
if (cv_fireflower.value) K_KartSetItemResult(ppos, 16); // Fire Flower
|
//if (cv_fireflower.value) K_KartSetItemResult(ppos, 16); // Fire Flower
|
||||||
if (cv_tripleredshell.value) K_KartSetItemResult(ppos, 17); // Triple Red Shell
|
if (cv_tripleredshell.value) K_KartSetItemResult(ppos, 17); // Triple Red Shell
|
||||||
if (cv_lightning.value && pingame > pexiting) K_KartSetItemResult(ppos, 18); // Lightning
|
if (cv_lightning.value && pingame > pexiting) K_KartSetItemResult(ppos, 18); // Lightning
|
||||||
|
|
||||||
|
|
@ -1097,12 +1097,7 @@ fixed_t K_GetKartBoostPower(player_t *player, boolean speedonly)
|
||||||
|
|
||||||
if (player->kartstuff[k_growshrinktimer] < -1 && speedonly)
|
if (player->kartstuff[k_growshrinktimer] < -1 && speedonly)
|
||||||
{ // Shrink
|
{ // Shrink
|
||||||
boostvalue += 6; // 6/8 speed (*0.750)
|
boostvalue += 16; // This is basically speed x2 due to friction and being smaller. Really translates to about 80%.
|
||||||
numboosts++;
|
|
||||||
}
|
|
||||||
if (player->kartstuff[k_squishedtimer] > 0 && speedonly)
|
|
||||||
{ // Squished
|
|
||||||
boostvalue += 7; // 7/8 speed (*0.875)
|
|
||||||
numboosts++;
|
numboosts++;
|
||||||
}
|
}
|
||||||
if (player->kartstuff[k_growshrinktimer] > 1
|
if (player->kartstuff[k_growshrinktimer] > 1
|
||||||
|
|
@ -1759,24 +1754,35 @@ void K_DoMushroom(player_t *player, boolean doPFlag)
|
||||||
|
|
||||||
void K_DoLightning(player_t *player, boolean bluelightning)
|
void K_DoLightning(player_t *player, boolean bluelightning)
|
||||||
{
|
{
|
||||||
|
mobj_t *mo;
|
||||||
|
thinker_t *think;
|
||||||
INT32 i;
|
INT32 i;
|
||||||
S_StartSound(player->mo, sfx_bkpoof); // Sound the BANG!
|
S_StartSound(player->mo, sfx_bkpoof); // Sound the BANG!
|
||||||
K_PlayTauntSound(player->mo);
|
|
||||||
player->pflags |= PF_ATTACKDOWN;
|
player->pflags |= PF_ATTACKDOWN;
|
||||||
|
|
||||||
for (i = 0; i < MAXPLAYERS; i++)
|
for (i = 0; i < MAXPLAYERS; i++)
|
||||||
{
|
{
|
||||||
if (playeringame[i])
|
if (playeringame[i])
|
||||||
P_FlashPal(&players[i], PAL_NUKE, 10);
|
P_FlashPal(&players[i], PAL_NUKE, 10);
|
||||||
|
}
|
||||||
|
|
||||||
if (bluelightning)
|
for (think = thinkercap.next; think != &thinkercap; think = think->next)
|
||||||
P_DamageMobj(players[i].mo, player->mo, player->mo, bluelightning ? 65 : 64);
|
{
|
||||||
|
if (think->function.acp1 != (actionf_p1)P_MobjThinker)
|
||||||
|
continue; // not a mobj thinker
|
||||||
|
|
||||||
|
mo = (mobj_t *)think;
|
||||||
|
|
||||||
|
if (mo->type == MT_PLAYER)
|
||||||
|
P_DamageMobj(mo, player->mo, player->mo, bluelightning ? 65 : 64);
|
||||||
|
else
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player->kartstuff[k_sounds]) // Prevents taunt sounds from playing every time the button is pressed
|
if (player->kartstuff[k_sounds]) // Prevents taunt sounds from playing every time the button is pressed
|
||||||
return;
|
return;
|
||||||
|
|
||||||
K_PlayTauntSound(player->mo);
|
//K_PlayTauntSound(player->mo);
|
||||||
player->kartstuff[k_sounds] = 50;
|
player->kartstuff[k_sounds] = 50;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2734,7 +2734,7 @@ void M_Init(void)
|
||||||
quitmsg[QUIT3MSG1] = M_GetText("Come on, just ONE more netgame!\n\n(Press 'Y' to quit)");
|
quitmsg[QUIT3MSG1] = M_GetText("Come on, just ONE more netgame!\n\n(Press 'Y' to quit)");
|
||||||
quitmsg[QUIT3MSG2] = M_GetText("Press 'N' to unlock\nthe Ultimate Cheat!\n\n(Press 'Y' to quit)");
|
quitmsg[QUIT3MSG2] = M_GetText("Press 'N' to unlock\nthe Ultimate Cheat!\n\n(Press 'Y' to quit)");
|
||||||
quitmsg[QUIT3MSG3] = M_GetText("Why don't you go back and try\njumping on that house to\nsee what happens?\n\n(Press 'Y' to quit)");
|
quitmsg[QUIT3MSG3] = M_GetText("Why don't you go back and try\njumping on that house to\nsee what happens?\n\n(Press 'Y' to quit)");
|
||||||
quitmsg[QUIT3MSG4] = M_GetText("Every time you press 'Y', an\nSRB2 Developer cries...\n\n(Press 'Y' to quit)");
|
quitmsg[QUIT3MSG4] = M_GetText("Every time you press 'Y', an\nSRB2Kart Developer cries...\n\n(Press 'Y' to quit)");
|
||||||
quitmsg[QUIT3MSG5] = M_GetText("You'll be back to play soon, though...\n......right?\n\n(Press 'Y' to quit)");
|
quitmsg[QUIT3MSG5] = M_GetText("You'll be back to play soon, though...\n......right?\n\n(Press 'Y' to quit)");
|
||||||
quitmsg[QUIT3MSG6] = M_GetText("Aww, is Egg Rock Zone too\ndifficult for you?\n\n(Press 'Y' to quit)");
|
quitmsg[QUIT3MSG6] = M_GetText("Aww, is Egg Rock Zone too\ndifficult for you?\n\n(Press 'Y' to quit)");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -532,7 +532,7 @@ void M_SaveConfig(const char *filename)
|
||||||
}
|
}
|
||||||
|
|
||||||
// header message
|
// header message
|
||||||
fprintf(f, "// SRB2 configuration file.\n");
|
fprintf(f, "// SRB2Kart configuration file.\n");
|
||||||
|
|
||||||
// FIXME: save key aliases if ever implemented..
|
// FIXME: save key aliases if ever implemented..
|
||||||
|
|
||||||
|
|
@ -652,8 +652,8 @@ static void M_PNGText(png_structp png_ptr, png_infop png_info_ptr, PNG_CONST png
|
||||||
char titletxt[] = "Sonic Robo Blast 2 " VERSIONSTRING;
|
char titletxt[] = "Sonic Robo Blast 2 " VERSIONSTRING;
|
||||||
png_charp authortxt = I_GetUserName();
|
png_charp authortxt = I_GetUserName();
|
||||||
png_charp playertxt = cv_playername.zstring;
|
png_charp playertxt = cv_playername.zstring;
|
||||||
char desctxt[] = "SRB2 Screenshot";
|
char desctxt[] = "SRB2Kart Screenshot";
|
||||||
char Movietxt[] = "SRB2 Movie";
|
char Movietxt[] = "SRB2Kart Movie";
|
||||||
size_t i;
|
size_t i;
|
||||||
char interfacetxt[] =
|
char interfacetxt[] =
|
||||||
#ifdef HAVE_SDL
|
#ifdef HAVE_SDL
|
||||||
|
|
|
||||||
|
|
@ -206,7 +206,7 @@ static void ServerName_OnChange(void);
|
||||||
|
|
||||||
#define DEF_PORT "28900"
|
#define DEF_PORT "28900"
|
||||||
consvar_t cv_masterserver = {"masterserver", "ms.srb2.org:"DEF_PORT, CV_SAVE, NULL, MasterServer_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_masterserver = {"masterserver", "ms.srb2.org:"DEF_PORT, CV_SAVE, NULL, MasterServer_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_servername = {"servername", "SRB2 server", CV_SAVE, NULL, ServerName_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_servername = {"servername", "SRB2Kart server", CV_SAVE, NULL, ServerName_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
||||||
INT16 ms_RoomId = -1;
|
INT16 ms_RoomId = -1;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8243,6 +8243,7 @@ void A_RedShellChase(mobj_t *actor)
|
||||||
void A_BobombExplode(mobj_t *actor)
|
void A_BobombExplode(mobj_t *actor)
|
||||||
{
|
{
|
||||||
mobj_t *mo2;
|
mobj_t *mo2;
|
||||||
|
mobj_t *mo3;
|
||||||
thinker_t *th;
|
thinker_t *th;
|
||||||
INT32 d;
|
INT32 d;
|
||||||
INT32 locvar1 = var1;
|
INT32 locvar1 = var1;
|
||||||
|
|
@ -8253,7 +8254,9 @@ void A_BobombExplode(mobj_t *actor)
|
||||||
for (d = 0; d < 16; d++)
|
for (d = 0; d < 16; d++)
|
||||||
K_SpawnKartExplosion(actor->x, actor->y, actor->z, actor->info->painchance + 32*FRACUNIT, 32, type, d*(ANGLE_45/4), false, false); // 32 <-> 64
|
K_SpawnKartExplosion(actor->x, actor->y, actor->z, actor->info->painchance + 32*FRACUNIT, 32, type, d*(ANGLE_45/4), false, false); // 32 <-> 64
|
||||||
|
|
||||||
S_StartSound(actor, sfx_prloop);
|
mo3 = P_SpawnMobj(actor->x, actor->y, actor->z, MT_BOMBEXPLOSIONSOUND);
|
||||||
|
|
||||||
|
//S_StartSound(actor, sfx_prloop);
|
||||||
|
|
||||||
for (th = thinkercap.next; th != &thinkercap; th = th->next)
|
for (th = thinkercap.next; th != &thinkercap; th = th->next)
|
||||||
{
|
{
|
||||||
|
|
@ -8262,7 +8265,7 @@ void A_BobombExplode(mobj_t *actor)
|
||||||
|
|
||||||
mo2 = (mobj_t *)th;
|
mo2 = (mobj_t *)th;
|
||||||
|
|
||||||
if (mo2 == actor) // Don't explode yourself! Endless loop!
|
if (mo2 == actor || mo2->type == MT_BOMBEXPLOSIONSOUND) // Don't explode yourself! Endless loop!
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (P_AproxDistance(P_AproxDistance(mo2->x - actor->x, mo2->y - actor->y), mo2->z - actor->z) > actor->info->painchance)
|
if (P_AproxDistance(P_AproxDistance(mo2->x - actor->x, mo2->y - actor->y), mo2->z - actor->z) > actor->info->painchance)
|
||||||
|
|
@ -8277,8 +8280,6 @@ void A_BobombExplode(mobj_t *actor)
|
||||||
else
|
else
|
||||||
P_DamageMobj(mo2, actor, actor->target, 1);
|
P_DamageMobj(mo2, actor, actor->target, 1);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3125,7 +3125,7 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
|
||||||
K_SpinPlayer(player, source);
|
K_SpinPlayer(player, source);
|
||||||
|
|
||||||
// Start shrinking!
|
// Start shrinking!
|
||||||
player->mo->destscale = 70;
|
player->mo->destscale = 6*FRACUNIT/8;
|
||||||
player->kartstuff[k_growshrinktimer] -= (100+20*(16-(player->kartstuff[k_position])));
|
player->kartstuff[k_growshrinktimer] -= (100+20*(16-(player->kartstuff[k_position])));
|
||||||
}
|
}
|
||||||
// Mega Mushroom? Let's take that away.
|
// Mega Mushroom? Let's take that away.
|
||||||
|
|
|
||||||
75
src/p_mobj.c
75
src/p_mobj.c
|
|
@ -1702,12 +1702,57 @@ void P_XYMovement(mobj_t *mo)
|
||||||
if (player->bot)
|
if (player->bot)
|
||||||
B_MoveBlocked(player);
|
B_MoveBlocked(player);
|
||||||
}
|
}
|
||||||
|
//{ SRB2kart - Red Shell
|
||||||
|
if (mo->type == MT_REDITEM || mo->type == MT_REDITEMDUD)
|
||||||
|
{
|
||||||
|
if (mo->health == 1)
|
||||||
|
{
|
||||||
|
// This Item Damage
|
||||||
|
S_StartSound(mo, mo->info->deathsound);
|
||||||
|
P_KillMobj(mo, NULL, NULL);
|
||||||
|
|
||||||
if (mo->flags & MF_BOUNCE)
|
P_SetObjectMomZ(mo, 8*FRACUNIT, false);
|
||||||
|
P_InstaThrust(mo, R_PointToAngle2(mo->x, mo->y, mo->x + xmove, mo->y + ymove)+ANGLE_90, 16*FRACUNIT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//}
|
||||||
|
else if (mo->flags & MF_BOUNCE)
|
||||||
{
|
{
|
||||||
P_BounceMove(mo);
|
P_BounceMove(mo);
|
||||||
xmove = ymove = 0;
|
xmove = ymove = 0;
|
||||||
S_StartSound(mo, mo->info->activesound);
|
//S_StartSound(mo, mo->info->activesound);
|
||||||
|
//{ SRB2kart - Shell and fireball
|
||||||
|
if (mo->type == MT_GREENITEM)
|
||||||
|
{
|
||||||
|
if (mo->health > 1)
|
||||||
|
{
|
||||||
|
S_StartSound(mo, mo->info->attacksound);
|
||||||
|
mo->health--;
|
||||||
|
mo->threshold = 0;
|
||||||
|
}
|
||||||
|
else if (mo->health == 1)
|
||||||
|
{
|
||||||
|
// This Item Damage
|
||||||
|
S_StartSound(mo, mo->info->deathsound);
|
||||||
|
P_KillMobj(mo, NULL, NULL);
|
||||||
|
|
||||||
|
P_SetObjectMomZ(mo, 8*FRACUNIT, false);
|
||||||
|
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);
|
||||||
|
mo->health--;
|
||||||
|
if (mo->health <= 0)
|
||||||
|
{
|
||||||
|
S_StartSound(mo, mo->info->deathsound);
|
||||||
|
P_SetMobjState(mo, mo->info->deathstate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
S_StartSound(mo, mo->info->activesound);
|
||||||
|
//}
|
||||||
|
|
||||||
// Bounce ring algorithm
|
// Bounce ring algorithm
|
||||||
if (mo->type == MT_THROWNBOUNCE)
|
if (mo->type == MT_THROWNBOUNCE)
|
||||||
|
|
@ -1913,8 +1958,8 @@ void P_XYMovement(mobj_t *mo)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//{ SRB2kart stuff
|
//{ SRB2kart stuff
|
||||||
//if (mo->type == MT_SHELLITEM || mo->type == MT_REDSHELLITEM2 || (mo->type == MT_REDSHELLITEM && !mo->tracer))
|
if (mo->type == MT_GREENITEM || mo->type == MT_REDITEMDUD || (mo->type == MT_REDITEM && !mo->tracer))
|
||||||
// return;
|
return;
|
||||||
|
|
||||||
if (mo->player && mo->player->kartstuff[k_spinouttimer] && mo->player->speed <= mo->player->normalspeed/4)
|
if (mo->player && mo->player->kartstuff[k_spinouttimer] && mo->player->speed <= mo->player->normalspeed/4)
|
||||||
return;
|
return;
|
||||||
|
|
@ -6450,7 +6495,7 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
else
|
else
|
||||||
zfixds = 56;
|
zfixds = 56;
|
||||||
|
|
||||||
INT32 DIST = FixedDiv(zfixds, mobj->target->scale);
|
INT32 DIST = FixedMul(zfixds, mobj->target->scale);
|
||||||
INT32 HEIGHT;
|
INT32 HEIGHT;
|
||||||
const fixed_t radius = DIST*FRACUNIT; // mobj's distance from its Target, or Radius.
|
const fixed_t radius = DIST*FRACUNIT; // mobj's distance from its Target, or Radius.
|
||||||
|
|
||||||
|
|
@ -6870,7 +6915,17 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
P_RemoveMobj(mobj);
|
P_RemoveMobj(mobj);
|
||||||
break;
|
break;
|
||||||
case MT_BOMBITEM:
|
case MT_BOMBITEM:
|
||||||
P_SetMobjState(mobj, mobj->info->deathstate);
|
case MT_BLUEEXPLOSION:
|
||||||
|
if (mobj->health > -100)
|
||||||
|
{
|
||||||
|
P_SetMobjState(mobj, mobj->info->deathstate);
|
||||||
|
mobj->health = -100;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
P_RemoveMobj(mobj);
|
||||||
|
break;
|
||||||
|
case MT_BOMBEXPLOSIONSOUND:
|
||||||
|
P_RemoveMobj(mobj);
|
||||||
break;
|
break;
|
||||||
//}
|
//}
|
||||||
default:
|
default:
|
||||||
|
|
@ -7432,6 +7487,9 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
if (mobj->threshold > 0)
|
if (mobj->threshold > 0)
|
||||||
mobj->threshold--;
|
mobj->threshold--;
|
||||||
break;
|
break;
|
||||||
|
case MT_BLUEEXPLOSION:
|
||||||
|
mobj->health--;
|
||||||
|
break;
|
||||||
case MT_BOMBEXPLOSION:
|
case MT_BOMBEXPLOSION:
|
||||||
if ((mobj->z < mobj->floorz - mobj->height) || (mobj->z > mobj->ceilingz + mobj->height))
|
if ((mobj->z < mobj->floorz - mobj->height) || (mobj->z > mobj->ceilingz + mobj->height))
|
||||||
{
|
{
|
||||||
|
|
@ -7455,6 +7513,11 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
mobj->z += mobj->momz;
|
mobj->z += mobj->momz;
|
||||||
P_SetThingPosition(mobj);
|
P_SetThingPosition(mobj);
|
||||||
return;
|
return;
|
||||||
|
case MT_BOMBEXPLOSIONSOUND:
|
||||||
|
if (mobj->health == 100)
|
||||||
|
S_StartSound(mobj, sfx_prloop);
|
||||||
|
mobj->health--;
|
||||||
|
break;
|
||||||
//}
|
//}
|
||||||
case MT_TURRET:
|
case MT_TURRET:
|
||||||
P_MobjCheckWater(mobj);
|
P_MobjCheckWater(mobj);
|
||||||
|
|
|
||||||
|
|
@ -4588,12 +4588,12 @@ static void P_3dMovement(player_t *player)
|
||||||
if (player->kartstuff[k_drift] >= 1)
|
if (player->kartstuff[k_drift] >= 1)
|
||||||
{
|
{
|
||||||
movepushangle = player->mo->angle+ANGLE_45;
|
movepushangle = player->mo->angle+ANGLE_45;
|
||||||
player->kartstuff[k_driftfix] = 4;
|
player->kartstuff[k_driftfix] = 5;
|
||||||
}
|
}
|
||||||
else if (player->kartstuff[k_drift] <= -1)
|
else if (player->kartstuff[k_drift] <= -1)
|
||||||
{
|
{
|
||||||
movepushangle = player->mo->angle-ANGLE_45;
|
movepushangle = player->mo->angle-ANGLE_45;
|
||||||
player->kartstuff[k_driftfix] = -4;
|
player->kartstuff[k_driftfix] = -5;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
movepushangle = player->mo->angle;
|
movepushangle = player->mo->angle;
|
||||||
|
|
|
||||||
|
|
@ -683,7 +683,7 @@ static void I_StartupConsole(void)
|
||||||
|
|
||||||
if (gotConsole)
|
if (gotConsole)
|
||||||
{
|
{
|
||||||
SetConsoleTitleA("SRB2 Console");
|
SetConsoleTitleA("SRB2Kart Console");
|
||||||
consolevent = SDL_TRUE;
|
consolevent = SDL_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1659,7 +1659,7 @@ void I_UpdateMumble(const mobj_t *mobj, const listener_t listener)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(mumble->uiVersion != 2) {
|
if(mumble->uiVersion != 2) {
|
||||||
wcsncpy(mumble->name, L"SRB2 "VERSIONSTRINGW, 256);
|
wcsncpy(mumble->name, L"SRB2Kart "VERSIONSTRINGW, 256);
|
||||||
wcsncpy(mumble->description, L"Sonic Robo Blast 2 with integrated Mumble Link support.", 2048);
|
wcsncpy(mumble->description, L"Sonic Robo Blast 2 with integrated Mumble Link support.", 2048);
|
||||||
mumble->uiVersion = 2;
|
mumble->uiVersion = 2;
|
||||||
}
|
}
|
||||||
|
|
@ -2374,7 +2374,7 @@ void I_Error(const char *error, ...)
|
||||||
// which should fail gracefully if it can't put a message box up
|
// which should fail gracefully if it can't put a message box up
|
||||||
// on the target system
|
// on the target system
|
||||||
SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR,
|
SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR,
|
||||||
"SRB2 "VERSIONSTRING" Recursive Error",
|
"SRB2Kart "VERSIONSTRING" Recursive Error",
|
||||||
buffer, NULL);
|
buffer, NULL);
|
||||||
|
|
||||||
W_Shutdown();
|
W_Shutdown();
|
||||||
|
|
@ -2427,7 +2427,7 @@ void I_Error(const char *error, ...)
|
||||||
// which should fail gracefully if it can't put a message box up
|
// which should fail gracefully if it can't put a message box up
|
||||||
// on the target system
|
// on the target system
|
||||||
SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR,
|
SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR,
|
||||||
"SRB2 "VERSIONSTRING" Error",
|
"SRB2Kart "VERSIONSTRING" Error",
|
||||||
buffer, NULL);
|
buffer, NULL);
|
||||||
// Note that SDL_ShowSimpleMessageBox does *not* require SDL to be
|
// Note that SDL_ShowSimpleMessageBox does *not* require SDL to be
|
||||||
// initialized at the time, so calling it after SDL_Quit() is
|
// initialized at the time, so calling it after SDL_Quit() is
|
||||||
|
|
|
||||||
|
|
@ -1236,7 +1236,7 @@ static SDL_bool Impl_CreateWindow(SDL_bool fullscreen)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Create a window
|
// Create a window
|
||||||
window = SDL_CreateWindow("SRB2 "VERSIONSTRING, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
|
window = SDL_CreateWindow("SRB2Kart "VERSIONSTRING, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
|
||||||
realwidth, realheight, flags);
|
realwidth, realheight, flags);
|
||||||
|
|
||||||
if (window == NULL)
|
if (window == NULL)
|
||||||
|
|
|
||||||
|
|
@ -1942,7 +1942,7 @@ boolean I_StartDigSong(const char *musicname, boolean looping)
|
||||||
loopstartDig = 0.0l;
|
loopstartDig = 0.0l;
|
||||||
#else
|
#else
|
||||||
if (looping && strcmp(data, "OggS") == 0)
|
if (looping && strcmp(data, "OggS") == 0)
|
||||||
I_OutputMsg("I_StartDigSong: SRB2 was not compiled with looping music support(no Mix_FadeInMusicPos)\n");
|
I_OutputMsg("I_StartDigSong: SRB2Kart was not compiled with looping music support(no Mix_FadeInMusicPos)\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!LoadSong(data, lumplength, 1))
|
if (!LoadSong(data, lumplength, 1))
|
||||||
|
|
|
||||||
|
|
@ -682,7 +682,7 @@ static void I_StartupConsole(void)
|
||||||
|
|
||||||
if (gotConsole)
|
if (gotConsole)
|
||||||
{
|
{
|
||||||
SetConsoleTitleA("SRB2 Console");
|
SetConsoleTitleA("SRB2Kart Console");
|
||||||
consolevent = SDL_TRUE;
|
consolevent = SDL_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1662,7 +1662,7 @@ void I_UpdateMumble(const mobj_t *mobj, const listener_t listener)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(mumble->uiVersion != 2) {
|
if(mumble->uiVersion != 2) {
|
||||||
wcsncpy(mumble->name, L"SRB2 "VERSIONSTRING, 256);
|
wcsncpy(mumble->name, L"SRB2Kart "VERSIONSTRING, 256);
|
||||||
wcsncpy(mumble->description, L"Sonic Robo Blast 2 with integrated Mumble Link support.", 2048);
|
wcsncpy(mumble->description, L"Sonic Robo Blast 2 with integrated Mumble Link support.", 2048);
|
||||||
mumble->uiVersion = 2;
|
mumble->uiVersion = 2;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ boolean I_InitNetwork(void)
|
||||||
{
|
{
|
||||||
if (M_CheckParm ("-net"))
|
if (M_CheckParm ("-net"))
|
||||||
{
|
{
|
||||||
I_Error("The Win32 version of SRB2 doesn't work with external drivers like ipxsetup, sersetup, or doomatic\n"
|
I_Error("The Win32 version of SRB2Kart doesn't work with external drivers like ipxsetup, sersetup, or doomatic\n"
|
||||||
"Read the documentation about \"-server\" and \"-connect\" parameters or just use the launcher\n");
|
"Read the documentation about \"-server\" and \"-connect\" parameters or just use the launcher\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -504,7 +504,7 @@ static void signal_handler(int num)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
MessageBoxA(hWndMain, va("signal_handler(): %s", sigmsg), "SRB2 error", MB_OK|MB_ICONERROR);
|
MessageBoxA(hWndMain, va("signal_handler(): %s", sigmsg), "SRB2Kart error", MB_OK|MB_ICONERROR);
|
||||||
|
|
||||||
signal(num, SIG_DFL); // default signal action
|
signal(num, SIG_DFL); // default signal action
|
||||||
raise(num);
|
raise(num);
|
||||||
|
|
@ -621,7 +621,7 @@ void I_Error(const char *error, ...)
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
OutputDebugStringA(txt);
|
OutputDebugStringA(txt);
|
||||||
MessageBoxA(hWndMain, txt, "SRB2 Recursive Error", MB_OK|MB_ICONERROR);
|
MessageBoxA(hWndMain, txt, "SRB2Kart Recursive Error", MB_OK|MB_ICONERROR);
|
||||||
W_Shutdown();
|
W_Shutdown();
|
||||||
exit(-1); // recursive errors detected
|
exit(-1); // recursive errors detected
|
||||||
}
|
}
|
||||||
|
|
@ -665,7 +665,7 @@ void I_Error(const char *error, ...)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
MessageBoxA(hWndMain, txt, "SRB2 Error", MB_OK|MB_ICONERROR);
|
MessageBoxA(hWndMain, txt, "SRB2Kart Error", MB_OK|MB_ICONERROR);
|
||||||
|
|
||||||
W_Shutdown();
|
W_Shutdown();
|
||||||
exit(-1);
|
exit(-1);
|
||||||
|
|
|
||||||
|
|
@ -479,7 +479,7 @@ static int WINAPI HandledWinMain(HINSTANCE hInstance,
|
||||||
|
|
||||||
// open a dummy window, both OpenGL and DirectX need one.
|
// open a dummy window, both OpenGL and DirectX need one.
|
||||||
if ((hWndMain = OpenMainWindow(hInstance,nCmdShow,
|
if ((hWndMain = OpenMainWindow(hInstance,nCmdShow,
|
||||||
va("SRB2 "VERSIONSTRING))) == (HANDLE)-1)
|
va("SRB2Kart "VERSIONSTRING))) == (HANDLE)-1)
|
||||||
{
|
{
|
||||||
tlErrorMessage(TEXT("Couldn't open window"));
|
tlErrorMessage(TEXT("Couldn't open window"));
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue