Visuals and friends #34
No files matched your search
@@ -957,9 +957,12 @@ static boolean AddIWAD(void)
|
||||
}
|
||||
}
|
||||
|
||||
boolean found_extra_kart;
|
||||
|
||||
static void IdentifyVersion(void)
|
||||
{
|
||||
const char *srb2waddir = NULL;
|
||||
found_extra_kart = false;
|
||||
|
||||
#if (defined (__unix__) && !defined (MSDOS)) || defined (UNIXCOMMON) || defined (HAVE_SDL)
|
||||
// change to the directory where 'srb2.srb' is found
|
||||
@@ -1012,6 +1015,11 @@ static void IdentifyVersion(void)
|
||||
#ifdef USE_PATCH_KART
|
||||
D_AddFile(va(pandf,srb2waddir,"patch.kart"), startupwadfiles);
|
||||
#endif
|
||||
// completely optional
|
||||
if (FIL_ReadFileOK(va(pandf,srb2waddir,"extra.kart"))) {
|
||||
D_AddFile(va(pandf,srb2waddir,"extra.kart"), startupwadfiles);
|
||||
found_extra_kart = true;
|
||||
}
|
||||
|
||||
#if !defined (HAVE_SDL) || defined (HAVE_MIXER)
|
||||
#define MUSICTEST(str) \
|
||||
@@ -1337,6 +1345,9 @@ void D_SRB2Main(void)
|
||||
|
||||
#endif //ifndef DEVELOP
|
||||
|
||||
if (found_extra_kart) // found the funny, add it in!
|
||||
mainwads++;
|
||||
|
||||
//
|
||||
// search for maps
|
||||
//
|
||||
|
||||
@@ -25,6 +25,8 @@ extern boolean usehome; //Alam: which path?
|
||||
extern const char *pandf; //Alam: how to path?
|
||||
extern char srb2path[256]; //Alam: SRB2's Home
|
||||
|
||||
extern boolean found_extra_kart; // for use in k_kart.c
|
||||
|
||||
// the infinite loop of D_SRB2Loop() called from win_main for windows version
|
||||
void D_SRB2Loop(void) FUNCNORETURN;
|
||||
|
||||
|
||||
@@ -957,6 +957,11 @@ void D_RegisterClientCommands(void)
|
||||
CV_RegisterVar(&cv_mini_yoffset);
|
||||
CV_RegisterVar(&cv_want_xoffset);
|
||||
CV_RegisterVar(&cv_want_yoffset);
|
||||
CV_RegisterVar(&cv_showinput);
|
||||
CV_RegisterVar(&cv_newspeedometer);
|
||||
|
||||
CV_RegisterVar(&cv_saltyhop);
|
||||
CV_RegisterVar(&cv_saltyhopsfx);
|
||||
|
||||
//CV_RegisterVar(&cv_crosshair);
|
||||
//CV_RegisterVar(&cv_crosshair2);
|
||||
|
||||
@@ -145,6 +145,11 @@ extern consvar_t cv_mini_xoffset;
|
||||
extern consvar_t cv_mini_yoffset;
|
||||
extern consvar_t cv_want_xoffset;
|
||||
extern consvar_t cv_want_yoffset;
|
||||
extern consvar_t cv_showinput;
|
||||
extern consvar_t cv_newspeedometer;
|
||||
|
||||
extern consvar_t cv_saltyhop;
|
||||
extern consvar_t cv_saltyhopsfx;
|
||||
|
||||
extern consvar_t cv_driftsparkpulse;
|
||||
extern consvar_t cv_gravstretch;
|
||||
|
||||
@@ -81,6 +81,8 @@ patch_t *pingnum[10];
|
||||
patch_t *pinggfx[5]; // small ping graphic
|
||||
patch_t *pingmeasure[2]; // ping measurement graphic
|
||||
|
||||
patch_t *ranknum[10]; // rank numbers
|
||||
|
||||
patch_t *framecounter;
|
||||
patch_t *frameslash; // framerate stuff. Used in screen.c
|
||||
|
||||
@@ -281,6 +283,8 @@ void HU_LoadGraphics(void)
|
||||
nightsnum[i] = (patch_t *) W_CachePatchName(buffer, PU_HUDGFX);
|
||||
sprintf(buffer, "PINGN%d", i);
|
||||
pingnum[i] = (patch_t *) W_CachePatchName(buffer, PU_HUDGFX);
|
||||
sprintf(buffer, "OPPRNK0%d", i);
|
||||
ranknum[i] = (patch_t *) W_CachePatchName(buffer, PU_HUDGFX);
|
||||
}
|
||||
|
||||
// minus for negative tallnums
|
||||
|
||||
@@ -83,6 +83,7 @@ extern patch_t *hu_font[HU_FONTSIZE], *kart_font[KART_FONTSIZE], *tny_font[HU_FO
|
||||
extern patch_t *tallnum[10];
|
||||
extern patch_t *pingnum[10];
|
||||
extern patch_t *pinggfx[5];
|
||||
extern patch_t *ranknum[10];
|
||||
extern patch_t *nightsnum[10];
|
||||
extern patch_t *framecounter;
|
||||
extern patch_t *frameslash;
|
||||
|
||||
+152
-24
@@ -22,6 +22,7 @@
|
||||
#include "f_finale.h"
|
||||
#include "lua_hud.h" // For Lua hud checks
|
||||
#include "lua_hook.h" // For MobjDamage and ShouldDamage
|
||||
#include "d_main.h" // found_extra_kart
|
||||
|
||||
// Hud offset cvars
|
||||
consvar_t cv_item_xoffset = {"hud_item_xoffset", "0", CV_SAVE, NULL, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
@@ -53,6 +54,12 @@ consvar_t cv_mini_yoffset = {"hud_minimap_yoffset", "0", CV_SAVE, NULL, NULL, 0,
|
||||
consvar_t cv_want_xoffset = {"hud_wanted_xoffset", "0", CV_SAVE, NULL, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
consvar_t cv_want_yoffset = {"hud_wanted_yoffset", "0", CV_SAVE, NULL, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
|
||||
consvar_t cv_showinput = {"showinput", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
consvar_t cv_newspeedometer = {"newspeedometer", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
|
||||
consvar_t cv_saltyhop = {"hardcodehop", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
consvar_t cv_saltyhopsfx = {"hardcodehopsfx", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
|
||||
// SOME IMPORTANT VARIABLES DEFINED IN DOOMDEF.H:
|
||||
// gamespeed is cc (0 for easy, 1 for normal, 2 for hard)
|
||||
// franticitems is Frantic Mode items, bool
|
||||
@@ -3037,6 +3044,67 @@ static void K_StretchPlayerGravity(player_t *p)
|
||||
}
|
||||
}
|
||||
|
||||
static void K_QuiteSaltyHop(player_t *p)
|
||||
{
|
||||
// what the fuck is this haya
|
||||
fixed_t mos = FRACUNIT; // doesnt work correctly if it isnt :/
|
||||
|
||||
// ready?
|
||||
if (!p->kartstuff[k_jmp]) {
|
||||
p->mo->salty_ready = true;
|
||||
p->mo->salty_tapping = false;
|
||||
} else if (p->mo->salty_ready) {
|
||||
p->mo->salty_ready = false;
|
||||
p->mo->salty_tapping = true;
|
||||
} else {
|
||||
p->mo->salty_tapping = false;
|
||||
}
|
||||
|
||||
// GO!
|
||||
if (!p->mo->init_salty) {
|
||||
p->mo->salty_jump = false;
|
||||
p->mo->salty_zoffset = 0;
|
||||
p->mo->salty_momz = 0;
|
||||
p->mo->init_salty = true;
|
||||
}
|
||||
else if (p->mo->salty_jump) {
|
||||
if (p->mo->eflags & MFE_JUSTHITFLOOR) {
|
||||
p->mo->salty_zoffset = 0;
|
||||
} else if (P_IsObjectOnGround(p->mo)) {
|
||||
p->mo->salty_zoffset += p->mo->salty_momz;
|
||||
p->mo->salty_momz -= (mos*3/2);
|
||||
} else {
|
||||
p->mo->salty_zoffset *= (49/50)*mos;
|
||||
p->mo->salty_momz = 0;
|
||||
}
|
||||
if (p->mo->salty_zoffset <= 0) {
|
||||
if (!(p->mo->eflags & MFE_JUSTHITFLOOR) && P_IsObjectOnGround(p->mo) && cv_saltyhopsfx.value)
|
||||
S_StartSound(p->mo, sfx_s268);
|
||||
p->mo->salty_jump = false;
|
||||
p->mo->salty_zoffset = 0;
|
||||
p->mo->salty_momz = 0;
|
||||
// shlamma damma
|
||||
p->mo->stretchslam += (8*mos);
|
||||
} else if (p->mo->salty_zoffset >= 0) {
|
||||
// goofy ahh hack
|
||||
p->mo->spriteyscale += (mos/8);
|
||||
p->mo->spritexscale -= (mos/8);
|
||||
}
|
||||
p->mo->spriteyoffset = p->mo->salty_zoffset*P_MobjFlip(p->mo);
|
||||
if (S_SoundPlaying(p->mo, sfx_screec))
|
||||
S_StopSoundByID(p->mo, sfx_screec);
|
||||
if (S_SoundPlaying(p->mo, sfx_drift))
|
||||
S_StopSoundByID(p->mo, sfx_drift);
|
||||
}
|
||||
else if (p->mo->salty_tapping && P_IsObjectOnGround(p->mo) && !p->kartstuff[k_spinouttimer] && !p->kartstuff[k_squishedtimer]) {
|
||||
p->mo->salty_jump = true;
|
||||
p->mo->salty_zoffset = 0;
|
||||
p->mo->salty_momz = 6*mos;
|
||||
if (cv_saltyhopsfx.value)
|
||||
S_StartSound(p->mo, sfx_s25a);
|
||||
}
|
||||
}
|
||||
|
||||
static INT32 K_FindPlayerNum(player_t *plyr)
|
||||
{
|
||||
INT32 i;
|
||||
@@ -6392,6 +6460,16 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
||||
|
||||
player->kartstuff[k_boostcharge] = 0;
|
||||
}
|
||||
|
||||
// salty hop! i wanna die
|
||||
if (cv_saltyhop.value)
|
||||
K_QuiteSaltyHop(player);
|
||||
else {
|
||||
player->mo->spriteyoffset = 0;
|
||||
player->mo->salty_jump = false;
|
||||
player->mo->salty_zoffset = 0;
|
||||
player->mo->salty_momz = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void K_CalculateBattleWanted(void)
|
||||
@@ -6817,6 +6895,9 @@ static patch_t *kp_lapanim_hand[3];
|
||||
|
||||
static patch_t *kp_yougotem;
|
||||
|
||||
static patch_t *skp_smallsticker;
|
||||
static patch_t *skp_speedpatches[5];
|
||||
|
||||
void K_LoadKartHUDGraphics(void)
|
||||
{
|
||||
INT32 i, j;
|
||||
@@ -7063,6 +7144,16 @@ void K_LoadKartHUDGraphics(void)
|
||||
}
|
||||
|
||||
kp_yougotem = (patch_t *) W_CachePatchName("YOUGOTEM", PU_HUDGFX);
|
||||
|
||||
if (found_extra_kart) // snowy speedometer
|
||||
{
|
||||
skp_smallsticker = W_CachePatchName("SP_SMSTC", PU_HUDGFX);
|
||||
skp_speedpatches[0] = W_CachePatchName("K_TRNULL", PU_HUDGFX); // lolxd
|
||||
skp_speedpatches[1] = W_CachePatchName("SP_MKMH", PU_HUDGFX);
|
||||
skp_speedpatches[2] = W_CachePatchName("SP_MMPH", PU_HUDGFX);
|
||||
skp_speedpatches[3] = W_CachePatchName("SP_MFRAC", PU_HUDGFX);
|
||||
skp_speedpatches[4] = W_CachePatchName("SP_MPERC", PU_HUDGFX);
|
||||
}
|
||||
}
|
||||
|
||||
// For the item toggle menu
|
||||
@@ -7775,6 +7866,7 @@ static void K_DrawKartPositionNum(INT32 num)
|
||||
patch_t *localpatch = kp_positionnum[0][0];
|
||||
//INT32 splitflags = K_calcSplitFlags(V_SNAPTOBOTTOM|V_SNAPTORIGHT);
|
||||
INT32 fx = 0, fy = 0, fflags = 0;
|
||||
INT32 xoffs = (cv_showinput.value) ? -48 : 0;
|
||||
boolean flipdraw = false; // flip the order we draw it in for MORE splitscreen bs. fun.
|
||||
boolean flipvdraw = false; // used only for 2p splitscreen so overtaking doesn't make 1P's position fly off the screen.
|
||||
boolean overtake = false;
|
||||
@@ -7786,13 +7878,15 @@ static void K_DrawKartPositionNum(INT32 num)
|
||||
}
|
||||
if (splitscreen)
|
||||
scale /= 2;
|
||||
if (cv_showinput.value && !splitscreen) // anuther one.
|
||||
scale /= 2;
|
||||
|
||||
W = FixedMul(W<<FRACBITS, scale)>>FRACBITS;
|
||||
|
||||
// pain and suffering defined below
|
||||
if (!splitscreen)
|
||||
{
|
||||
fx = POSI_X;
|
||||
fx = POSI_X + xoffs;
|
||||
fy = BASEVIDHEIGHT - 8;
|
||||
fflags = V_SNAPTOBOTTOM|V_SNAPTORIGHT;
|
||||
}
|
||||
@@ -8202,35 +8296,60 @@ static void K_drawKartLaps(void)
|
||||
|
||||
static void K_drawKartSpeedometer(void)
|
||||
{
|
||||
fixed_t convSpeed;
|
||||
// why?
|
||||
if (cv_kartspeedometer.value == 0)
|
||||
return;
|
||||
|
||||
fixed_t convSpeed = 0;
|
||||
INT32 speedtype = 0;
|
||||
INT32 splitflags = K_calcSplitFlags(V_SNAPTOBOTTOM|V_SNAPTOLEFT);
|
||||
|
||||
if (cv_kartspeedometer.value == 1) // Kilometers
|
||||
switch (cv_kartspeedometer.value)
|
||||
{
|
||||
convSpeed = FixedDiv(FixedMul(stplyr->speed, 142371), mapobjectscale)/FRACUNIT; // 2.172409058
|
||||
V_DrawKartString(SPDM_X, SPDM_Y, V_HUDTRANS|splitflags, va("%3d km/h", convSpeed));
|
||||
case 1:
|
||||
convSpeed = FixedDiv(FixedMul(stplyr->speed, 142371), mapobjectscale)/FRACUNIT; // 2.172409058
|
||||
speedtype = 1;
|
||||
break;
|
||||
case 2:
|
||||
convSpeed = FixedDiv(FixedMul(stplyr->speed, 142371), mapobjectscale)/FRACUNIT; // 2.172409058
|
||||
speedtype = 2;
|
||||
break;
|
||||
case 3:
|
||||
convSpeed = FixedDiv(FixedMul(stplyr->speed, 88465), mapobjectscale)/FRACUNIT; // 1.349868774
|
||||
speedtype = 3;
|
||||
break;
|
||||
case 4:
|
||||
if (stplyr->mo)
|
||||
convSpeed = (FixedDiv(stplyr->speed, FixedMul(K_GetKartSpeed(stplyr, false), ORIG_FRICTION))*100)>>FRACBITS;
|
||||
speedtype = 4;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
else if (cv_kartspeedometer.value == 2) // Miles
|
||||
|
||||
// man.
|
||||
if ((!cv_newspeedometer.value) || (cv_newspeedometer.value && !found_extra_kart))
|
||||
{
|
||||
convSpeed = FixedDiv(FixedMul(stplyr->speed, 88465), mapobjectscale)/FRACUNIT; // 1.349868774
|
||||
V_DrawKartString(SPDM_X, SPDM_Y, V_HUDTRANS|splitflags, va("%3d mph", convSpeed));
|
||||
}
|
||||
else if (cv_kartspeedometer.value == 3) // Fracunits
|
||||
{
|
||||
convSpeed = FixedDiv(stplyr->speed, mapobjectscale)/FRACUNIT;
|
||||
V_DrawKartString(SPDM_X, SPDM_Y, V_HUDTRANS|splitflags, va("%3d fu/t", convSpeed));
|
||||
}
|
||||
else if (cv_kartspeedometer.value == 4) // Percent
|
||||
{
|
||||
// so code breaks if someone attempts to join from spectator since it sets
|
||||
// their mo to NULL
|
||||
// so can we just check if their mo is NULL????
|
||||
if (stplyr->mo)
|
||||
{
|
||||
convSpeed = (FixedDiv(stplyr->speed, FixedMul(K_GetKartSpeed(stplyr, false), ORIG_FRICTION))*100)>>FRACBITS;
|
||||
V_DrawKartString(SPDM_X, SPDM_Y, V_HUDTRANS|splitflags, va("%4d P", convSpeed));
|
||||
switch (speedtype) {
|
||||
case 1:
|
||||
V_DrawKartString(SPDM_X, SPDM_Y, V_HUDTRANS|splitflags, va("%03d km/h", convSpeed));
|
||||
case 2:
|
||||
V_DrawKartString(SPDM_X, SPDM_Y, V_HUDTRANS|splitflags, va("%03d mph", convSpeed));
|
||||
case 3:
|
||||
V_DrawKartString(SPDM_X, SPDM_Y, V_HUDTRANS|splitflags, va("%03d fu/t", convSpeed));
|
||||
case 4: // if extra.kart is found, use its included % symbol
|
||||
if (!found_extra_kart)
|
||||
V_DrawKartString(SPDM_X, SPDM_Y, V_HUDTRANS|splitflags, va("%03d P", convSpeed));
|
||||
else
|
||||
V_DrawKartString(SPDM_X, SPDM_Y, V_HUDTRANS|splitflags, va("%03d %%", convSpeed));
|
||||
}
|
||||
}
|
||||
else if (cv_newspeedometer.value && found_extra_kart) { // why bother if we dont?
|
||||
|
||||
V_DrawScaledPatch(SPDM_X + 1, SPDM_Y + 4, V_HUDTRANS|splitflags, skp_smallsticker);
|
||||
V_DrawRankNum(SPDM_X + 26, SPDM_Y + 4, V_HUDTRANS|splitflags, convSpeed, 3, NULL);
|
||||
V_DrawScaledPatch(SPDM_X + 31, SPDM_Y + 4, V_HUDTRANS|splitflags, skp_speedpatches[cv_kartspeedometer.value]);
|
||||
}
|
||||
}
|
||||
|
||||
static void K_drawKartBumpersOrKarma(void)
|
||||
@@ -9004,9 +9123,12 @@ static void K_drawKartFirstPerson(void)
|
||||
// doesn't need to ever support 4p
|
||||
static void K_drawInput(void)
|
||||
{
|
||||
if (!cv_showinput.value && !modeattacking) // dont bother
|
||||
return;
|
||||
|
||||
static INT32 pn = 0;
|
||||
INT32 target = 0, splitflags = (V_SNAPTOBOTTOM|V_SNAPTORIGHT);
|
||||
INT32 x = BASEVIDWIDTH - 32, y = BASEVIDHEIGHT-24, offs, col;
|
||||
INT32 x = BASEVIDWIDTH - 32 + cv_posi_xoffset.value, y = BASEVIDHEIGHT-24 + cv_posi_yoffset.value, offs, col;
|
||||
const INT32 accent1 = splitflags|colortranslations[stplyr->skincolor][5];
|
||||
const INT32 accent2 = splitflags|colortranslations[stplyr->skincolor][9];
|
||||
ticcmd_t *cmd = &stplyr->cmd;
|
||||
@@ -9388,6 +9510,12 @@ void K_drawKartHUD(void)
|
||||
|
||||
if (!stplyr->spectator && !demo.freecam) // Bottom of the screen elements, don't need in spectate mode
|
||||
{
|
||||
if (!(splitscreen || demo.title))
|
||||
#ifdef HAVE_BLUA
|
||||
if (LUA_HudEnabled(hud_position))
|
||||
#endif
|
||||
K_drawInput();
|
||||
|
||||
if (demo.title) // Draw title logo instead in demo.titles
|
||||
{
|
||||
INT32 x = BASEVIDWIDTH - 32, y = 128, offs;
|
||||
|
||||
+39
-19
@@ -1694,14 +1694,29 @@ static menuitem_t OP_MonitorToggleMenu[] =
|
||||
static menuitem_t OP_SaturnMenu[] =
|
||||
{
|
||||
{IT_HEADER, NULL, "Saturn Options", NULL, 0},
|
||||
{IT_STRING | IT_CVAR, NULL, "Serverqueue waittime", &cv_connectawaittime, 30},
|
||||
{IT_STRING | IT_CVAR, NULL, "Serverqueue waittime", &cv_connectawaittime, 20},
|
||||
//{IT_STRING | IT_CVAR, NULL, "Addon Download Speed", &cv_downloadspeed, 55}, //no idea why you would wanna change it anyways
|
||||
{IT_STRING | IT_CVAR, NULL, "Skin Select Spinning Speed", &cv_skinselectspin, 50},
|
||||
{IT_STRING | IT_CVAR, NULL, "No Midnight Channel Flicker", &cv_lessflicker, 75},
|
||||
{IT_SUBMENU|IT_STRING, NULL, "Player distortion...", &OP_PlayerDistortDef, 100},
|
||||
{IT_SUBMENU|IT_STRING, NULL, "Hud Offsets...", &OP_HudOffsetDef, 115},
|
||||
{IT_STRING | IT_CVAR, NULL, "Skin Select Spinning Speed", &cv_skinselectspin, 40},
|
||||
{IT_STRING | IT_CVAR, NULL, "Input Display outside of RA", &cv_showinput, 50},
|
||||
{IT_STRING | IT_CVAR, NULL, "V2-ish Speedometer", &cv_newspeedometer, 60},
|
||||
{IT_STRING | IT_CVAR, NULL, "No Midnight Channel Flicker", &cv_lessflicker, 70},
|
||||
{IT_SUBMENU|IT_STRING, NULL, "Player distortion...", &OP_PlayerDistortDef, 90},
|
||||
{IT_SUBMENU|IT_STRING, NULL, "Hud Offsets...", &OP_HudOffsetDef, 100},
|
||||
|
||||
{IT_SUBMENU|IT_STRING, NULL, "Saturn Credits", &OP_SaturnCreditsDef, 155}, // uwu
|
||||
{IT_SUBMENU|IT_STRING, NULL, "Saturn Credits", &OP_SaturnCreditsDef, 120}, // uwu
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
sm_header,
|
||||
sm_waittime,
|
||||
sm_skinselspeed,
|
||||
sm_input,
|
||||
sm_speedometer,
|
||||
sm_pisschannel,
|
||||
sm_distortionmenu,
|
||||
sm_hudoffsets,
|
||||
sm_credits,
|
||||
};
|
||||
|
||||
static menuitem_t OP_PlayerDistortMenu[] =
|
||||
@@ -1745,25 +1760,27 @@ static menuitem_t OP_SaturnCreditsMenu[] =
|
||||
|
||||
{IT_HEADER, NULL, "Main Devs <3", NULL, 20},
|
||||
|
||||
{IT_STRING, NULL, "alufolie91 aka Alug", NULL, 30},
|
||||
{IT_STRING, NULL, "Indev", NULL, 40},
|
||||
{IT_STRING2+IT_SPACE, NULL, "alufolie91 aka Alug", NULL, 30},
|
||||
{IT_STRING2+IT_SPACE, NULL, "Indev", NULL, 40},
|
||||
|
||||
{IT_HEADER, NULL, "Testers <3", NULL, 60},
|
||||
|
||||
{IT_STRING, NULL, "Sunflower aka AnimeSonic", NULL, 70},
|
||||
{IT_STRING, NULL, "Yuz aka Yuzler", NULL, 80},
|
||||
{IT_STRING, NULL, "Democrab", NULL, 90},
|
||||
{IT_STRING, NULL, "EXpand aka Maver", NULL, 100},
|
||||
{IT_STRING2+IT_SPACE, NULL, "Sunflower aka AnimeSonic", NULL, 70},
|
||||
{IT_STRING2+IT_SPACE, NULL, "Yuz aka Yuzler", NULL, 80},
|
||||
{IT_STRING2+IT_SPACE, NULL, "Democrab", NULL, 90},
|
||||
{IT_STRING2+IT_SPACE, NULL, "EXpand aka Maver", NULL, 100},
|
||||
|
||||
{IT_HEADER, NULL, "Special Thanks <3", NULL, 120},
|
||||
|
||||
{IT_STRING, NULL, "xyzzy", NULL, 130},
|
||||
{IT_STRING, NULL, "Haya", NULL, 140},
|
||||
{IT_STRING, NULL, "Galactice", NULL, 150},
|
||||
{IT_STRING, NULL, "Himie and", NULL, 160},
|
||||
{IT_STRING, NULL, "The Moe Mansion / Birdhouse Team", NULL, 170},
|
||||
{IT_STRING, NULL, "All of Sunflower's Garden", NULL, 180},
|
||||
{IT_STRING2+IT_SPACE, NULL, "xyzzy", NULL, 130},
|
||||
{IT_STRING2+IT_SPACE, NULL, "Haya", NULL, 140},
|
||||
{IT_STRING2+IT_SPACE, NULL, "Galactice", NULL, 150},
|
||||
{IT_STRING2+IT_SPACE, NULL, "Himie and", NULL, 160},
|
||||
{IT_STRING2+IT_SPACE, NULL, "The Moe Mansion / Birdhouse Team", NULL, 170},
|
||||
{IT_STRING2+IT_SPACE, NULL, "All of Sunflower's Garden", NULL, 180},
|
||||
|
||||
{IT_STRING+IT_SPACE, NULL, "", NULL, 190}, // dummy text
|
||||
{IT_STRING, NULL, "", NULL, 200}, // dummy text II
|
||||
};
|
||||
|
||||
static menuitem_t OP_BirdMenu[] =
|
||||
@@ -3826,6 +3843,9 @@ void M_Init(void)
|
||||
OP_VideoOptionsMenu[op_video_ogl].status = IT_DISABLED;
|
||||
#endif
|
||||
|
||||
if (!found_extra_kart) // why bother?
|
||||
OP_SaturnMenu[sm_speedometer].status = IT_GRAYEDOUT;
|
||||
|
||||
#ifndef NONET
|
||||
CV_RegisterVar(&cv_serversort);
|
||||
#endif
|
||||
@@ -11050,7 +11070,7 @@ static void M_DrawJoystick(void)
|
||||
compareval4 = cv_usejoystick4.value;
|
||||
compareval3 = cv_usejoystick3.value;
|
||||
compareval2 = cv_usejoystick2.value;
|
||||
compareval = cv_usejoystick.value
|
||||
compareval = cv_usejoystick.value;
|
||||
#endif
|
||||
|
||||
if ((setupcontrolplayer == 4 && (i == compareval4))
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
// We need the WAD data structure for Map things, from the THINGS lump.
|
||||
#include "doomdata.h"
|
||||
#include "doomtype.h"
|
||||
|
||||
// States are tied to finite states are tied to animation frames.
|
||||
// Needs precompiled tables/data structures.
|
||||
@@ -394,6 +395,14 @@ typedef struct mobj_s
|
||||
boolean colorized; // Whether the mobj uses the rainbow colormap
|
||||
boolean rollmodel; // OpenGL: Should this model rotate?
|
||||
|
||||
// saltyhop! hardcode edition
|
||||
boolean salty_ready;
|
||||
boolean salty_tapping;
|
||||
fixed_t salty_zoffset;
|
||||
fixed_t salty_momz;
|
||||
boolean salty_jump;
|
||||
boolean init_salty;
|
||||
|
||||
// WARNING: New fields must be added separately to savegame and Lua.
|
||||
} mobj_t;
|
||||
|
||||
|
||||
+4
-4
@@ -293,13 +293,13 @@ void R_InterpolateMobjState(mobj_t *mobj, fixed_t frac, interpmobjstate_t *out)
|
||||
out->scale = mobj->resetinterp ? mobj->scale : R_LerpFixed(mobj->old_scale, mobj->scale, frac);
|
||||
out->spritexscale = mobj->resetinterp ? mobj->spritexscale : R_LerpFixed(mobj->old_spritexscale, mobj->spritexscale, frac);
|
||||
out->spriteyscale = mobj->resetinterp ? mobj->spriteyscale : R_LerpFixed(mobj->old_spriteyscale, mobj->spriteyscale, frac);
|
||||
//out->spritexoffset = mobj->resetinterp ? mobj->spritexoffset : R_LerpFixed(mobj->old_spritexoffset, mobj->spritexoffset, frac);
|
||||
//out->spriteyoffset = mobj->resetinterp ? mobj->spriteyoffset : R_LerpFixed(mobj->old_spriteyoffset, mobj->spriteyoffset, frac);
|
||||
out->spritexoffset = mobj->resetinterp ? mobj->spritexoffset : R_LerpFixed(mobj->old_spritexoffset, mobj->spritexoffset, frac);
|
||||
out->spriteyoffset = mobj->resetinterp ? mobj->spriteyoffset : R_LerpFixed(mobj->old_spriteyoffset, mobj->spriteyoffset, frac);
|
||||
|
||||
// Sprite offsets are not interpolated until we have a way to interpolate them explicitly in Lua.
|
||||
// It seems existing mods visually break more often than not if it is interpolated.
|
||||
out->spritexoffset = mobj->spritexoffset;
|
||||
out->spriteyoffset = mobj->spriteyoffset;
|
||||
//out->spritexoffset = mobj->spritexoffset;
|
||||
//out->spriteyoffset = mobj->spriteyoffset;
|
||||
|
||||
out->subsector = R_PointInSubsector(out->x, out->y);
|
||||
|
||||
|
||||
@@ -2053,6 +2053,28 @@ INT32 V_DrawPingNum(INT32 x, INT32 y, INT32 flags, INT32 num, const UINT8 *color
|
||||
return x;
|
||||
}
|
||||
|
||||
// Jaden: Draw a number using the position numbers.
|
||||
//
|
||||
void V_DrawRankNum(INT32 x, INT32 y, INT32 flags, INT32 num, INT32 digits, const UINT8 *colormap)
|
||||
{
|
||||
INT32 w = SHORT(ranknum[0]->width) - 1;
|
||||
|
||||
if (flags & V_NOSCALESTART)
|
||||
w *= vid.dupx;
|
||||
|
||||
if (num < 0)
|
||||
num = -num;
|
||||
|
||||
// draw the number
|
||||
do
|
||||
{
|
||||
x -= (w - 1);
|
||||
|
||||
V_DrawFixedPatch(x << FRACBITS, y << FRACBITS, FRACUNIT, flags, ranknum[num % 10], colormap);
|
||||
num /= 10;
|
||||
} while (--digits);
|
||||
}
|
||||
|
||||
// Write a string using the credit font
|
||||
// NOTE: the text is centered for screens larger than the base width
|
||||
//
|
||||
|
||||
@@ -212,6 +212,9 @@ INT32 V_DrawPingNum(INT32 x, INT32 y, INT32 flags, INT32 num, const UINT8 *color
|
||||
INT32 V_LevelNameWidth(const char *string);
|
||||
INT32 V_LevelNameHeight(const char *string);
|
||||
|
||||
// Rank numbers.
|
||||
void V_DrawRankNum(INT32 x, INT32 y, INT32 flags, INT32 num, INT32 digits, const UINT8 *colormap);
|
||||
|
||||
void V_DrawCreditString(fixed_t x, fixed_t y, INT32 option, const char *string);
|
||||
INT32 V_CreditStringWidth(const char *string);
|
||||
|
||||
|
||||
Reference in new issue
Block a user