game-source/klik/server.qc
2003-10-27 21:26:50 +00:00

113 lines
2.1 KiB
C++

#include "common.qh"
#include "server.qh"
#include "damage.qh"
#include "bodyque.qh"
#include "weapon.qh"
#include "client.qh"
#include "sz_watch.qh"
#include "mdl_player.qh"
#include "mdl_eyes.qh"
#include "act_player.qh"
#include "delays.qh"
#include "mapents.qh"
#define SV_FRAMES_BEFORE_SPAWN 3
void() main = {
local entity walk;
/* Must be first. */
max_clients = 0;
walk = world;
while (walk = nextent(walk)) max_clients++;
sv_spawning = SV_FRAMES_BEFORE_SPAWN;
damage_init();
bodyque_init();
weapon_init();
client_init();
SZ_init();
mdl_player_init();
mdl_eyes_init();
act_player_init();
};
float players_frame_started;
void() StartFrame = {
if (sv_spawning) {
sv_spawning = sv_spawning - 1;
if (!sv_spawning) {
if (!intermission_head)
intermission_head = spawn_head;
if (!spawn_head)
error("Unable to find a spawn point.\n");
}
}
SZ_frame();
rocket_jump = stof(infokey(world, "rj"));
if (rocket_jump <= 1) rocket_jump = 0;
sv_mintic = cvar("sv_mintic");
sv_maxtic = cvar("sv_maxtic");
sv_gravity = cvar("sv_gravity");
sv_stopspeed = cvar("sv_stopspeed");
sv_maxspeed = cvar("sv_maxspeed");
sv_spectatormaxspeed = cvar("sv_spectatormaxspeed");
sv_accelerate = cvar("sv_accelerate");
sv_airaccelerate = cvar("sv_airaccelerate");
sv_wateraccelerate = cvar("sv_wateraccelerate");
sv_friction = cvar("sv_friction");
sv_waterfriction = cvar("sv_waterfriction");
cl_rollangle = cvar("cl_rollangle");
cl_rollspeed = cvar("cl_rollspeed");
PlayerStartFrame();
players_frame_started = -1;
};
/* This is really called by QSG engines */
// void() EndFrame = { };
void() PlayerStartFrame = {
if (players_frame_started == -1) {
/* First player after StartFrame */
players_frame_started = TRUE;
return;
}
if (players_frame_started)
return;
players_frame_started = TRUE;
delays_swapin_stats_all();
};
void() PlayerEndFrame = {
/* Unfortunately, a newmis can us damage this frame,
after our postthink has been called. Damn. */
/* We just force an update this frame for now. */
if (newmis) {
delays_force_update_all();
} else {
players_frame_started = FALSE;
delays_swapout_stats_all();
}
};