diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-06-12 12:09:34 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-06-12 12:09:34 +0000 |
| commit | 3705064b109580103a3d13f44693503da9927281 (patch) | |
| tree | 0de409d2c67e74866e2bbe0b53a3791c20dab80d /src/game/g_game.h | |
| parent | f6c67c29cd10d41b877ee1319801edc01b625e72 (diff) | |
| download | zcatch-3705064b109580103a3d13f44693503da9927281.tar.gz zcatch-3705064b109580103a3d13f44693503da9927281.zip | |
renamed .h to .hpp in game because they are c++ headers
Diffstat (limited to 'src/game/g_game.h')
| -rw-r--r-- | src/game/g_game.h | 160 |
1 files changed, 0 insertions, 160 deletions
diff --git a/src/game/g_game.h b/src/game/g_game.h deleted file mode 100644 index 414dfdbf..00000000 --- a/src/game/g_game.h +++ /dev/null @@ -1,160 +0,0 @@ -/* copyright (c) 2007 magnus auvinen, see licence.txt for more info */ -#ifndef GAME_GAME_H -#define GAME_GAME_H - -#include <engine/e_system.h> -#include <engine/e_common_interface.h> -#include <math.h> -#include "g_math.h" -#include "g_collision.h" -#include "g_protocol.h" - -struct TUNING_PARAMS -{ - TUNING_PARAMS() - { - const float ticks_per_second = 50.0f; - #define MACRO_TUNING_PARAM(name,value) name.set((int)(value*100.0f)); - #include "g_tuning.h" - #undef MACRO_TUNING_PARAM - } - - static const char *names[]; - - #define MACRO_TUNING_PARAM(name,value) tune_param name; - #include "g_tuning.h" - #undef MACRO_TUNING_PARAM - - static int num() { return sizeof(TUNING_PARAMS)/sizeof(int); } - bool set(int index, float value); - bool set(const char *name, float value); - bool get(int index, float *value); - bool get(const char *name, float *value); -}; - - -inline vec2 get_direction(int angle) -{ - float a = angle/256.0f; - return vec2(cosf(a), sinf(a)); -} - -inline vec2 get_dir(float a) -{ - return vec2(cosf(a), sinf(a)); -} - -inline float get_angle(vec2 dir) -{ - float a = atan(dir.y/dir.x); - if(dir.x < 0) - a = a+pi; - return a; -} - - -inline vec2 calc_pos(vec2 p, vec2 v, float curvature, float speed, float t) -{ - vec2 n; - t *= speed; - n.x = p.x + v.x*t; - n.y = p.y + v.y*t + curvature/10000*(t*t); - return n; -} - - -template<typename T> -inline T saturated_add(T min, T max, T current, T modifier) -{ - if(modifier < 0) - { - if(current < min) - return current; - current += modifier; - if(current < min) - current = min; - return current; - } - else - { - if(current > max) - return current; - current += modifier; - if(current > max) - current = max; - return current; - } -} - -void move_point(vec2 *inout_pos, vec2 *inout_vel, float elasticity, int *bounces); -void move_box(vec2 *inout_pos, vec2 *inout_vel, vec2 size, float elasticity); -bool test_box(vec2 pos, vec2 size); -float velocity_ramp(float value, float start, float range, float curvature); - -// hooking stuff -enum -{ - HOOK_RETRACTED=-1, - HOOK_IDLE=0, - HOOK_RETRACT_START=1, - HOOK_RETRACT_END=3, - HOOK_FLYING, - HOOK_GRABBED, - - COREEVENT_GROUND_JUMP=0x01, - COREEVENT_AIR_JUMP=0x02, - COREEVENT_HOOK_LAUNCH=0x04, - COREEVENT_HOOK_ATTACH_PLAYER=0x08, - COREEVENT_HOOK_ATTACH_GROUND=0x10, - COREEVENT_HOOK_RETRACT=0x20, -}; - -class WORLD_CORE -{ -public: - WORLD_CORE() - { - mem_zero(players, sizeof(players)); - } - - TUNING_PARAMS tuning; - class PLAYER_CORE *players[MAX_CLIENTS]; -}; - -class PLAYER_CORE -{ -public: - WORLD_CORE *world; - - vec2 pos; - vec2 vel; - - vec2 hook_pos; - vec2 hook_dir; - int hook_tick; - int hook_state; - int hooked_player; - - int jumped; - NETOBJ_PLAYER_INPUT input; - - int triggered_events; - - void reset(); - void tick(); - void move(); - - void read(const NETOBJ_PLAYER_CORE *obj_core); - void write(NETOBJ_PLAYER_CORE *obj_core); - void quantize(); -}; - - -#define LERP(a,b,t) (a + (b-a) * t) -#define min(a, b) ( a > b ? b : a) -#define max(a, b) ( a > b ? a : b) - -inline bool col_check_point(float x, float y) { return col_is_solid((int)x, (int)y) != 0; } -inline bool col_check_point(vec2 p) { return col_check_point(p.x, p.y); } - -#endif |