mirror of
https://github.com/nzp-team/quakec.git
synced 2024-11-22 03:41:15 +00:00
CLIENT/SERVER: Add new event for screen flashing, add delay to game start
This commit is contained in:
parent
4deeb465ee
commit
bc46399f8c
14 changed files with 158 additions and 110 deletions
BIN
source/client/.DS_Store
vendored
Normal file
BIN
source/client/.DS_Store
vendored
Normal file
Binary file not shown.
|
@ -154,8 +154,11 @@ vector TEXT_ORANGE = [(235/255), (189/255), 0];
|
||||||
vector TEXT_GREEN = [0, (230/255), (34/255)];
|
vector TEXT_GREEN = [0, (230/255), (34/255)];
|
||||||
vector TEXT_RED = [1, 0, 0];
|
vector TEXT_RED = [1, 0, 0];
|
||||||
|
|
||||||
float fade_time;
|
float screenflash_type;
|
||||||
float fade_type;
|
float screenflash_color;
|
||||||
|
float screenflash_duration;
|
||||||
|
float screenflash_worktime;
|
||||||
|
float screenflash_starttime;
|
||||||
|
|
||||||
.float stance;
|
.float stance;
|
||||||
.float points;
|
.float points;
|
||||||
|
|
|
@ -1520,29 +1520,46 @@ void() HUD_Endgame = {
|
||||||
HUD_Scores();
|
HUD_Scores();
|
||||||
}
|
}
|
||||||
|
|
||||||
float oldfade_alpha;
|
//
|
||||||
void() HUD_Fade =
|
// HUD_Screenflash()
|
||||||
|
// Screen fade in and out behaviors.
|
||||||
|
//
|
||||||
|
void() HUD_Screenflash =
|
||||||
{
|
{
|
||||||
float alpha;
|
vector color = '0 0 0';
|
||||||
|
float flash_alpha = 0;
|
||||||
if (fade_type == 1) {
|
|
||||||
alpha = cos(fade_time - time);
|
// Obtain the flash color
|
||||||
if (oldfade_alpha > 0.95)
|
switch(screenflash_color) {
|
||||||
alpha = 1;
|
case SCREENFLASH_COLOR_BLACK: color = '0 0 0'; break;
|
||||||
|
case SCREENFLASH_COLOR_WHITE: color = '1 1 1'; break;
|
||||||
alpha = invertfloat(alpha);
|
default: color = '1 0 0'; break;
|
||||||
|
|
||||||
drawfill ([0, 0, 0], [g_width, g_height, 0], [0, 0, 0], alpha, 0); // background
|
|
||||||
oldfade_alpha = alpha;
|
|
||||||
}
|
}
|
||||||
else if (fade_type == 2) {
|
|
||||||
alpha = sin(((fade_time - time) * 2));
|
float percentage_complete = screenflash_worktime / (screenflash_duration - screenflash_starttime);
|
||||||
if (oldfade_alpha > 0.95)
|
|
||||||
alpha = 1;
|
// Fade Out
|
||||||
|
if (screenflash_type == SCREENFLASH_FADE_OUT) {
|
||||||
drawfill ([0, 0, 0], [g_width, g_height, 0], [0, 0, 0], alpha, 0); // background
|
flash_alpha = invertfloat(percentage_complete);
|
||||||
oldfade_alpha = alpha;
|
|
||||||
}
|
}
|
||||||
|
// Fade In
|
||||||
|
else if (screenflash_type == SCREENFLASH_FADE_IN) {
|
||||||
|
flash_alpha = percentage_complete;
|
||||||
|
}
|
||||||
|
// Fade In + Fade Out
|
||||||
|
else {
|
||||||
|
// Fade In
|
||||||
|
if (percentage_complete < 0.5) {
|
||||||
|
flash_alpha = percentage_complete;
|
||||||
|
}
|
||||||
|
// Fade Out
|
||||||
|
else {
|
||||||
|
flash_alpha = invertfloat(percentage_complete);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
screenflash_worktime += frametime;
|
||||||
|
drawfill ([0, 0], [g_width, g_height, 0], color, flash_alpha, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void(float width, float height) HUD_ScrollText = {
|
void(float width, float height) HUD_ScrollText = {
|
||||||
|
@ -1819,6 +1836,6 @@ void(float width, float height) HUD_Draw =
|
||||||
|
|
||||||
HUD_Achievements(width, height);
|
HUD_Achievements(width, height);
|
||||||
|
|
||||||
if (fade_time > time)
|
if (screenflash_duration > time)
|
||||||
HUD_Fade();
|
HUD_Screenflash();
|
||||||
}
|
}
|
|
@ -625,7 +625,11 @@ noref void(float width, float height, float menushown) CSQC_UpdateView =
|
||||||
}
|
}
|
||||||
if(in_menu)
|
if(in_menu)
|
||||||
{
|
{
|
||||||
//in menu.qc
|
// sorta-nasty hack: flashes should still draw if we're
|
||||||
|
// drawing the menu.
|
||||||
|
if (screenflash_duration > time)
|
||||||
|
HUD_Screenflash();
|
||||||
|
|
||||||
Draw_Menu();
|
Draw_Menu();
|
||||||
setlocaluserinfo(0, "in_menu", "1");
|
setlocaluserinfo(0, "in_menu", "1");
|
||||||
}
|
}
|
||||||
|
@ -907,6 +911,13 @@ noref void() CSQC_Parse_Event =
|
||||||
case CSQC_EVENT_PLAYERNAME:
|
case CSQC_EVENT_PLAYERNAME:
|
||||||
character_name = readstring();
|
character_name = readstring();
|
||||||
break;
|
break;
|
||||||
|
case CSQC_EVENT_SCREENFLASH:
|
||||||
|
screenflash_color = readbyte();
|
||||||
|
screenflash_duration = time + readbyte();
|
||||||
|
screenflash_type = readbyte();
|
||||||
|
screenflash_worktime = 0;
|
||||||
|
screenflash_starttime = time;
|
||||||
|
break;
|
||||||
case EVENT_WEAPONRECOIL:
|
case EVENT_WEAPONRECOIL:
|
||||||
local vector rec;
|
local vector rec;
|
||||||
rec_x = readcoord()/5;
|
rec_x = readcoord()/5;
|
||||||
|
@ -979,10 +990,6 @@ noref void() CSQC_Parse_Event =
|
||||||
case EVENT_MAPTYPE:
|
case EVENT_MAPTYPE:
|
||||||
map_compatibility_mode = readbyte();
|
map_compatibility_mode = readbyte();
|
||||||
break;
|
break;
|
||||||
case EVENT_BLACKOUT:
|
|
||||||
fade_time = readbyte();
|
|
||||||
fade_type = readbyte();
|
|
||||||
break;
|
|
||||||
case EVENT_WORLDDATA:
|
case EVENT_WORLDDATA:
|
||||||
chaptertitle = readstring();
|
chaptertitle = readstring();
|
||||||
location = readstring();
|
location = readstring();
|
||||||
|
|
BIN
source/server/.DS_Store
vendored
Normal file
BIN
source/server/.DS_Store
vendored
Normal file
Binary file not shown.
|
@ -248,6 +248,26 @@ void(entity target, float broadcast_type, float broadcast_time, float player_id)
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// nzp_screenflash(target, color, duration, type)
|
||||||
|
// FTE equivalent of nzp_screenflash builtin.
|
||||||
|
//
|
||||||
|
void(entity target, float color, float duration, float type) nzp_screenflash =
|
||||||
|
{
|
||||||
|
WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET);
|
||||||
|
WriteByte(MSG_MULTICAST, CSQC_EVENT_SCREENFLASH);
|
||||||
|
WriteByte(MSG_MULTICAST, color);
|
||||||
|
WriteByte(MSG_MULTICAST, duration);
|
||||||
|
WriteByte(MSG_MULTICAST, type);
|
||||||
|
|
||||||
|
if (target != world) {
|
||||||
|
msg_entity = target;
|
||||||
|
multicast('0 0 0', MULTICAST_ONE);
|
||||||
|
} else {
|
||||||
|
multicast('0 0 0', MULTICAST_ALL);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
#endif // FTE
|
#endif // FTE
|
||||||
|
|
||||||
void(float count) UpdatePlayerCount = {
|
void(float count) UpdatePlayerCount = {
|
||||||
|
@ -264,20 +284,6 @@ void(float count) UpdatePlayerCount = {
|
||||||
#endif // FTE
|
#endif // FTE
|
||||||
}
|
}
|
||||||
|
|
||||||
void(float newtime, float newtype, entity change) PromptLevelChange =
|
|
||||||
{
|
|
||||||
#ifdef FTE
|
|
||||||
|
|
||||||
WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET);
|
|
||||||
WriteByte(MSG_MULTICAST, EVENT_BLACKOUT);
|
|
||||||
WriteByte(MSG_MULTICAST, newtime);
|
|
||||||
WriteByte(MSG_MULTICAST, newtype);
|
|
||||||
msg_entity = change;
|
|
||||||
multicast('0 0 0', MULTICAST_ONE);
|
|
||||||
|
|
||||||
#endif // FTE
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef FTE
|
#ifdef FTE
|
||||||
void(entity who) grenade_pulse =
|
void(entity who) grenade_pulse =
|
||||||
{
|
{
|
||||||
|
|
|
@ -38,7 +38,7 @@ void() EndGame_Restart =
|
||||||
// Fade to black function, creates another think for restart
|
// Fade to black function, creates another think for restart
|
||||||
void() EndGame_FadePrompt =
|
void() EndGame_FadePrompt =
|
||||||
{
|
{
|
||||||
PromptLevelChange(time + 6, 2, self);
|
nzp_screenflash(self, SCREENFLASH_COLOR_BLACK, 6, SCREENFLASH_FADE_IN);
|
||||||
|
|
||||||
#ifdef FTE
|
#ifdef FTE
|
||||||
|
|
||||||
|
|
|
@ -274,7 +274,7 @@ float ()
|
||||||
void (entity who) nzp_bettyprompt = #504;
|
void (entity who) nzp_bettyprompt = #504;
|
||||||
void (entity who, string name) nzp_setplayername = #505;
|
void (entity who, string name) nzp_setplayername = #505;
|
||||||
void (entity who, float version) nzp_setdoubletapver = #506;
|
void (entity who, float version) nzp_setdoubletapver = #506;
|
||||||
|
void (entity who, float color, float duration, float type) nzp_screenflash = #507;
|
||||||
//
|
//
|
||||||
// constants
|
// constants
|
||||||
//
|
//
|
||||||
|
|
|
@ -38,7 +38,6 @@ var struct powerup_struct
|
||||||
{
|
{
|
||||||
float id;
|
float id;
|
||||||
float occupied;
|
float occupied;
|
||||||
float flash_screen;
|
|
||||||
string model_path;
|
string model_path;
|
||||||
string voiceover_path;
|
string voiceover_path;
|
||||||
void() function;
|
void() function;
|
||||||
|
@ -85,7 +84,7 @@ entity() PU_GetFreeEnt =
|
||||||
// PU_AddToStruct(id, model_path, voiceover_path)
|
// PU_AddToStruct(id, model_path, voiceover_path)
|
||||||
// Adds the Power-Up and info to the powerup struct
|
// Adds the Power-Up and info to the powerup struct
|
||||||
//
|
//
|
||||||
void(float id, float flash_screen, string model_path, string voiceover_path, void() function, float() requirement_function)
|
void(float id, string model_path, string voiceover_path, void() function, float() requirement_function)
|
||||||
PU_AddToStruct =
|
PU_AddToStruct =
|
||||||
{
|
{
|
||||||
if (id > MAX_POWERUPS - 1)
|
if (id > MAX_POWERUPS - 1)
|
||||||
|
@ -98,7 +97,6 @@ PU_AddToStruct =
|
||||||
// Populate the Struct at Index
|
// Populate the Struct at Index
|
||||||
powerup_array[powerup_count].id = id;
|
powerup_array[powerup_count].id = id;
|
||||||
powerup_array[powerup_count].occupied = true;
|
powerup_array[powerup_count].occupied = true;
|
||||||
powerup_array[powerup_count].flash_screen = flash_screen;
|
|
||||||
powerup_array[powerup_count].model_path = model_path;
|
powerup_array[powerup_count].model_path = model_path;
|
||||||
powerup_array[powerup_count].voiceover_path = voiceover_path;
|
powerup_array[powerup_count].voiceover_path = voiceover_path;
|
||||||
powerup_array[powerup_count].function = function;
|
powerup_array[powerup_count].function = function;
|
||||||
|
@ -175,22 +173,6 @@ float() PU_GetNextPowerUp =
|
||||||
return id;
|
return id;
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
|
||||||
// PU_ShouldFlashScreen(id)
|
|
||||||
// Returns flash_screen from Power-Up struct.
|
|
||||||
//
|
|
||||||
float(float id) PU_ShouldFlashScreen =
|
|
||||||
{
|
|
||||||
if (id == -1)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
for(float i = 0; i < MAX_POWERUPS - 1; i++) {
|
|
||||||
if (powerup_array[i].id == id)
|
|
||||||
return powerup_array[i].flash_screen;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// PU_ModelPath(id)
|
// PU_ModelPath(id)
|
||||||
// Returns model_path from Power-Up struct.
|
// Returns model_path from Power-Up struct.
|
||||||
|
@ -339,6 +321,9 @@ void() PU_NukeKill =
|
||||||
//
|
//
|
||||||
void() PU_Nuke =
|
void() PU_Nuke =
|
||||||
{
|
{
|
||||||
|
// Flash the screen white
|
||||||
|
nzp_screenflash(world, SCREENFLASH_COLOR_WHITE, 1, SCREENFLASH_FADE_INANDOUT);
|
||||||
|
|
||||||
// if there's already one active, just increment the point multiplier
|
// if there's already one active, just increment the point multiplier
|
||||||
if (nuke_powerup_active == true) {
|
if (nuke_powerup_active == true) {
|
||||||
nuke_powerups_activated++;
|
nuke_powerups_activated++;
|
||||||
|
@ -589,15 +574,15 @@ void() PU_Init =
|
||||||
}
|
}
|
||||||
|
|
||||||
// Just add all of them for now
|
// Just add all of them for now
|
||||||
PU_AddToStruct(PU_NUKE, true, "models/pu/nuke!.mdl", "sounds/pu/kaboom.wav", PU_Nuke,
|
PU_AddToStruct(PU_NUKE, "models/pu/nuke!.mdl", "sounds/pu/kaboom.wav", PU_Nuke,
|
||||||
PU_NullRequirement );
|
PU_NullRequirement );
|
||||||
PU_AddToStruct(PU_INSTAKILL, false, "models/pu/instakill!.mdl", "sounds/pu/insta_kill.wav", PU_InstaKill,
|
PU_AddToStruct(PU_INSTAKILL, "models/pu/instakill!.mdl", "sounds/pu/insta_kill.wav", PU_InstaKill,
|
||||||
PU_NullRequirement );
|
PU_NullRequirement );
|
||||||
PU_AddToStruct(PU_DOUBLEPTS, false, "models/pu/x2!.mdl", "sounds/pu/double_points.wav", PU_DoublePoints,
|
PU_AddToStruct(PU_DOUBLEPTS, "models/pu/x2!.mdl", "sounds/pu/double_points.wav", PU_DoublePoints,
|
||||||
PU_NullRequirement );
|
PU_NullRequirement );
|
||||||
PU_AddToStruct(PU_CARPENTER, false, "models/pu/carpenter!.mdl", "sounds/pu/carpenter.wav", PU_Carpenter,
|
PU_AddToStruct(PU_CARPENTER, "models/pu/carpenter!.mdl", "sounds/pu/carpenter.wav", PU_Carpenter,
|
||||||
PU_CarpenterRequirement );
|
PU_CarpenterRequirement );
|
||||||
PU_AddToStruct(PU_MAXAMMO, false, "models/pu/maxammo!.mdl", "sounds/pu/maxammo.wav", PU_MaxAmmo,
|
PU_AddToStruct(PU_MAXAMMO, "models/pu/maxammo!.mdl", "sounds/pu/maxammo.wav", PU_MaxAmmo,
|
||||||
PU_NullRequirement );
|
PU_NullRequirement );
|
||||||
|
|
||||||
// Nuke requires an extra Precache
|
// Nuke requires an extra Precache
|
||||||
|
@ -678,10 +663,6 @@ void() PU_Touch =
|
||||||
Light_None(self);
|
Light_None(self);
|
||||||
self.touch = SUB_Null;
|
self.touch = SUB_Null;
|
||||||
|
|
||||||
// Flash the Screen if permitted
|
|
||||||
if (PU_ShouldFlashScreen(self.walktype) == true)
|
|
||||||
stuffcmd(other, "bf\n");
|
|
||||||
|
|
||||||
// Run Power-Up function
|
// Run Power-Up function
|
||||||
PU_LogicFunction(self.walktype);
|
PU_LogicFunction(self.walktype);
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,7 @@ void() main =
|
||||||
}
|
}
|
||||||
|
|
||||||
float ai_delay_time;
|
float ai_delay_time;
|
||||||
|
float time_before_gamestart;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Way_SetBrushEntNonSolid(ent_name)
|
// Way_SetBrushEntNonSolid(ent_name)
|
||||||
|
@ -90,6 +91,10 @@ void() StartFrame =
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Start completely blacked out
|
||||||
|
//if (time < 5)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (roundinit) {
|
if (roundinit) {
|
||||||
Round_Core();
|
Round_Core();
|
||||||
|
@ -122,19 +127,32 @@ void() StartFrame =
|
||||||
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
entity SpawnedIn;
|
if (!time_before_gamestart) {
|
||||||
SpawnedIn = find(world, classname, "player");
|
entity SpawnedIn;
|
||||||
|
SpawnedIn = find(world, classname, "player");
|
||||||
if (SpawnedIn) {
|
|
||||||
entity getdog = find(world, classname, "spawn_dog");
|
|
||||||
if (getdog)
|
|
||||||
gotdog = 1;
|
|
||||||
else
|
|
||||||
gotdog = 0;
|
|
||||||
|
|
||||||
|
if (SpawnedIn) {
|
||||||
|
Compat_Init();
|
||||||
|
time_before_gamestart = time + 3;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
} else if (time_before_gamestart < time) {
|
||||||
updateDogRound();
|
updateDogRound();
|
||||||
InitRounds();
|
InitRounds();
|
||||||
Compat_Init();
|
nzp_screenflash(world, SCREENFLASH_COLOR_BLACK, 1, SCREENFLASH_FADE_OUT);
|
||||||
|
sound(self, CHAN_AUTO, "sounds/rounds/splash.wav", 1, ATTN_NONE);
|
||||||
|
|
||||||
|
entity players = find(world, classname, "player");
|
||||||
|
|
||||||
|
while(players != world) {
|
||||||
|
if (players.name != "")
|
||||||
|
nzp_setplayername(players, players.name);
|
||||||
|
|
||||||
|
players = find(players, classname, "player");
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
nzp_screenflash(world, SCREENFLASH_COLOR_BLACK, 90, SCREENFLASH_FADE_OUT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -561,9 +561,6 @@ void() PlayerPostThink =
|
||||||
if(self.isspec)
|
if(self.isspec)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (time < 5 && self.name != "")
|
|
||||||
nzp_setplayername(self, self.name);
|
|
||||||
|
|
||||||
//landsound
|
//landsound
|
||||||
if((self.oldvelocity_z < -212) && (self.flags & FL_ONGROUND))
|
if((self.oldvelocity_z < -212) && (self.flags & FL_ONGROUND))
|
||||||
{
|
{
|
||||||
|
@ -890,12 +887,6 @@ void() PlayerSpawn =
|
||||||
self.reviving = 0;
|
self.reviving = 0;
|
||||||
self.perks = G_PERKS;
|
self.perks = G_PERKS;
|
||||||
|
|
||||||
if (rounds < 1 && player_count == 0) {
|
|
||||||
sound(self, CHAN_AUTO, "sounds/rounds/splash.wav", 1, ATTN_NONE);
|
|
||||||
sound(self, CHAN_ITEM, "sounds/rounds/nround.wav", 0.75, ATTN_NONE);
|
|
||||||
}
|
|
||||||
|
|
||||||
PromptLevelChange(self.nextthink + 3, 1, self);
|
|
||||||
UpdatePlayerCount(player_count);
|
UpdatePlayerCount(player_count);
|
||||||
|
|
||||||
#ifdef FTE
|
#ifdef FTE
|
||||||
|
@ -921,6 +912,11 @@ void() PlayerSpawn =
|
||||||
if (G_STARTROUND != 1) {
|
if (G_STARTROUND != 1) {
|
||||||
rounds = G_STARTROUND - 1;
|
rounds = G_STARTROUND - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Make sure players joining after game start are still allowed
|
||||||
|
// to see their name.
|
||||||
|
if (time >= 5 && self.name != "")
|
||||||
|
nzp_setplayername(self, self.name);
|
||||||
};
|
};
|
||||||
|
|
||||||
void() SpectatorSpawn =
|
void() SpectatorSpawn =
|
||||||
|
|
|
@ -370,4 +370,6 @@ void() Soft_Restart = {
|
||||||
InitRounds();
|
InitRounds();
|
||||||
self.isspec = false;
|
self.isspec = false;
|
||||||
PutClientInServer();
|
PutClientInServer();
|
||||||
|
|
||||||
|
nzp_screenflash(world, SCREENFLASH_COLOR_BLACK, 1, SCREENFLASH_FADE_OUT);
|
||||||
}
|
}
|
BIN
source/shared/.DS_Store
vendored
Normal file
BIN
source/shared/.DS_Store
vendored
Normal file
Binary file not shown.
|
@ -73,20 +73,37 @@
|
||||||
|
|
||||||
#define CSQC_EVENT_PLAYERNAME 17 // <string> player_name
|
#define CSQC_EVENT_PLAYERNAME 17 // <string> player_name
|
||||||
|
|
||||||
#define EVENT_UPDATE 18
|
#define CSQC_EVENT_SCREENFLASH 18 // <byte> screenflash_color
|
||||||
#define EVENT_BLACKOUT 19
|
// <byte> screenflash_duration
|
||||||
#define EVENT_WORLDDATA 20
|
// <byte> screenflash_type
|
||||||
|
|
||||||
|
#define EVENT_UPDATE 19
|
||||||
|
#define EVENT_BLACKOUT 20
|
||||||
|
#define EVENT_WORLDDATA 21
|
||||||
#define EVENT_PLAYERUPDATE 22
|
#define EVENT_PLAYERUPDATE 22
|
||||||
#define EVENT_REVIVEON 24
|
#define EVENT_REVIVEON 23
|
||||||
#define EVENT_REVIVEOFF 25
|
#define EVENT_REVIVEOFF 24
|
||||||
#define EVENT_REVIVECHANGE 26
|
#define EVENT_REVIVECHANGE 25
|
||||||
#define EVENT_WEAPONRECOIL 27
|
#define EVENT_WEAPONRECOIL 26
|
||||||
#define EVENT_GRENADEPULSE 29
|
#define EVENT_GRENADEPULSE 27
|
||||||
#define EVENT_BETTYPROMPT 30
|
#define EVENT_BETTYPROMPT 28
|
||||||
#define EVENT_CHATMESSAGE 31
|
#define EVENT_CHATMESSAGE 29
|
||||||
#define EVENT_DOUBLETAPUPDATE 32
|
#define EVENT_DOUBLETAPUPDATE 30
|
||||||
#define EVENT_ENDGAME 33
|
#define EVENT_ENDGAME 31
|
||||||
#define EVENT_MAPTYPE 34
|
#define EVENT_MAPTYPE 32
|
||||||
|
|
||||||
|
//
|
||||||
|
// Types of screen-flashes, global.
|
||||||
|
//
|
||||||
|
|
||||||
|
// Colors
|
||||||
|
#define SCREENFLASH_COLOR_WHITE 0
|
||||||
|
#define SCREENFLASH_COLOR_BLACK 1
|
||||||
|
|
||||||
|
// Types
|
||||||
|
#define SCREENFLASH_FADE_INANDOUT 0
|
||||||
|
#define SCREENFLASH_FADE_IN 1
|
||||||
|
#define SCREENFLASH_FADE_OUT 2
|
||||||
|
|
||||||
// Define our FTE platform
|
// Define our FTE platform
|
||||||
#ifndef STANDARD
|
#ifndef STANDARD
|
||||||
|
@ -296,9 +313,10 @@ float game_over;
|
||||||
// invert float takes in float value between 0 and 1, inverts position
|
// invert float takes in float value between 0 and 1, inverts position
|
||||||
// eg: 0.1 returns 0.9, 0.34 returns 0.66
|
// eg: 0.1 returns 0.9, 0.34 returns 0.66
|
||||||
float invertfloat(float input) {
|
float invertfloat(float input) {
|
||||||
|
if (input < 0)
|
||||||
if (input <= 0 || input >= 1)
|
return 0; // adjust to lower boundary
|
||||||
return input; // out of boundaries
|
else if (input > 1)
|
||||||
|
return 1; // adjust to upper boundary
|
||||||
return (1 - input);
|
else
|
||||||
|
return (1 - input);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue