Die letzten Header neu formatiert und in Sachen Komponenten aufgeräumt

This commit is contained in:
Yamagi Burmeister 2010-06-22 15:33:23 +00:00
parent 65230953f0
commit 7841c910ca
5 changed files with 223 additions and 236 deletions

View file

@ -30,6 +30,19 @@
#define INT int #define INT int
#endif #endif
#define MAX_CLIENTWEAPONMODELS 20
#define CMD_BACKUP 4 /* allow a lot of command backups for very fast systems */
/* the cl_parse_entities must be large enough to hold UPDATE_BACKUP frames of
entities, so that when a delta compressed message arives from the server
it can be un-deltad from the original */
#define MAX_PARSE_ENTITIES 1024
#define MAX_SUSTAINS 32
#define PARTICLE_GRAVITY 40
#define BLASTER_PARTICLE_COLOR 0xe0
#define INSTANT_PARTICLE -10000.0
#include <math.h> #include <math.h>
#include <string.h> #include <string.h>
#include <stdarg.h> #include <stdarg.h>
@ -74,8 +87,6 @@ typedef struct
int fly_stoptime; int fly_stoptime;
} centity_t; } centity_t;
#define MAX_CLIENTWEAPONMODELS 20
typedef struct typedef struct
{ {
char name[MAX_QPATH]; char name[MAX_QPATH];
@ -94,11 +105,8 @@ typedef struct
extern char cl_weaponmodels[MAX_CLIENTWEAPONMODELS][MAX_QPATH]; extern char cl_weaponmodels[MAX_CLIENTWEAPONMODELS][MAX_QPATH];
extern int num_cl_weaponmodels; extern int num_cl_weaponmodels;
#define CMD_BACKUP 4 /* allow a lot of command backups for very fast systems */
/* the client_state_t structure is wiped /* the client_state_t structure is wiped
completely at every server map change */ completely at every server map change */
typedef struct typedef struct
{ {
int timeoutcount; int timeoutcount;
@ -291,13 +299,8 @@ typedef struct
extern centity_t cl_entities[MAX_EDICTS]; extern centity_t cl_entities[MAX_EDICTS];
extern cdlight_t cl_dlights[MAX_DLIGHTS]; extern cdlight_t cl_dlights[MAX_DLIGHTS];
/* the cl_parse_entities must be large enough to hold UPDATE_BACKUP frames of
entities, so that when a delta compressed message arives from the server
it can be un-deltad from the original */
#define MAX_PARSE_ENTITIES 1024
extern entity_state_t cl_parse_entities[MAX_PARSE_ENTITIES]; extern entity_state_t cl_parse_entities[MAX_PARSE_ENTITIES];
extern netadr_t net_from; extern netadr_t net_from;
extern sizebuf_t net_message; extern sizebuf_t net_message;
@ -322,7 +325,6 @@ typedef struct cl_sustain
void (*think)(struct cl_sustain *self); void (*think)(struct cl_sustain *self);
} cl_sustain_t; } cl_sustain_t;
#define MAX_SUSTAINS 32
void CL_ParticleSteamEffect2(cl_sustain_t *self); void CL_ParticleSteamEffect2(cl_sustain_t *self);
void CL_TeleporterParticles (entity_state_t *ent); void CL_TeleporterParticles (entity_state_t *ent);
@ -348,11 +350,6 @@ typedef struct particle_s
float alphavel; float alphavel;
} cparticle_t; } cparticle_t;
#define PARTICLE_GRAVITY 40
#define BLASTER_PARTICLE_COLOR 0xe0
#define INSTANT_PARTICLE -10000.0
void CL_ClearEffects (void); void CL_ClearEffects (void);
void CL_ClearTEnts (void); void CL_ClearTEnts (void);
void CL_BlasterTrail (vec3_t start, vec3_t end); void CL_BlasterTrail (vec3_t start, vec3_t end);
@ -407,7 +404,6 @@ void CL_AddDLights (void);
void CL_AddTEnts (void); void CL_AddTEnts (void);
void CL_AddLightStyles (void); void CL_AddLightStyles (void);
void CL_PrepRefresh (void); void CL_PrepRefresh (void);
void CL_RegisterSounds (void); void CL_RegisterSounds (void);
@ -417,7 +413,6 @@ void IN_Accumulate (void);
void CL_ParseLayout (void); void CL_ParseLayout (void);
extern refexport_t re; extern refexport_t re;
void CL_Init (void); void CL_Init (void);
@ -513,3 +508,4 @@ void CL_KeyInventory (int key);
void CL_DrawInventory (void); void CL_DrawInventory (void);
void CL_PredictMovement (void); void CL_PredictMovement (void);

View file

@ -1,6 +1,3 @@
//psychospaz's particle system
typedef enum typedef enum
{ {
particle_generic, particle_generic,

View file

@ -1,22 +1,29 @@
/* /*
Copyright (C) 1997-2001 Id Software, Inc. * Copyright (C) 1997-2001 Id Software, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* =======================================================================
*
* ABI between client and refresher
*
* =======================================================================
*/
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef __REF_H #ifndef __REF_H
#define __REF_H #define __REF_H
@ -37,79 +44,67 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define SHELL_RB_COLOR 0x68 #define SHELL_RB_COLOR 0x68
#define SHELL_BG_COLOR 0x78 #define SHELL_BG_COLOR 0x78
//ROGUE #define SHELL_DOUBLE_COLOR 0xDF
#define SHELL_DOUBLE_COLOR 0xDF // 223
#define SHELL_HALF_DAM_COLOR 0x90 #define SHELL_HALF_DAM_COLOR 0x90
#define SHELL_CYAN_COLOR 0x72 #define SHELL_CYAN_COLOR 0x72
//ROGUE
#define SHELL_WHITE_COLOR 0xD7 #define SHELL_WHITE_COLOR 0xD7
typedef struct entity_s #define ENTITY_FLAGS 68
{ #define API_VERSION 3
struct model_s *model; // opaque type outside refresh
typedef struct entity_s {
struct model_s *model; /* opaque type outside refresh */
float angles[3]; float angles[3];
/* /* most recent data */
** most recent data float origin[3]; /* also used as RF_BEAM's "from" */
*/ int frame; /* also used as RF_BEAM's diameter */
float origin[3]; // also used as RF_BEAM's "from"
int frame; // also used as RF_BEAM's diameter
/* /* previous data for lerping */
** previous data for lerping float oldorigin[3]; /* also used as RF_BEAM's "to" */
*/
float oldorigin[3]; // also used as RF_BEAM's "to"
int oldframe; int oldframe;
/* /* misc */
** misc float backlerp; /* 0.0 = current, 1.0 = old */
*/ int skinnum; /* also used as RF_BEAM's palette index */
float backlerp; // 0.0 = current, 1.0 = old
int skinnum; // also used as RF_BEAM's palette index
int lightstyle; // for flashing entities int lightstyle; /* for flashing entities */
float alpha; // ignore if RF_TRANSLUCENT isn't set float alpha; /* ignore if RF_TRANSLUCENT isn't set */
struct image_s *skin; // NULL for inline skin struct image_s *skin; /* NULL for inline skin */
int flags; int flags;
} entity_t; } entity_t;
#define ENTITY_FLAGS 68 typedef struct {
vec3_t origin;
typedef struct vec3_t color;
{ float intensity;
vec3_t origin;
vec3_t color;
float intensity;
} dlight_t; } dlight_t;
typedef struct typedef struct {
{
vec3_t origin; vec3_t origin;
int color; int color;
float alpha; float alpha;
} particle_t; } particle_t;
typedef struct typedef struct {
{ float rgb[3]; /* 0.0 - 2.0 */
float rgb[3]; // 0.0 - 2.0 float white; /* highest of rgb */
float white; // highest of rgb
} lightstyle_t; } lightstyle_t;
typedef struct typedef struct {
{ int x, y, width, height; /* in virtual screen coordinates */
int x, y, width, height;// in virtual screen coordinates
float fov_x, fov_y; float fov_x, fov_y;
float vieworg[3]; float vieworg[3];
float viewangles[3]; float viewangles[3];
float blend[4]; // rgba 0-1 full screen blend float blend[4]; /* rgba 0-1 full screen blend */
float time; // time is uesed to auto animate float time; /* time is uesed to auto animate */
int rdflags; // RDF_UNDERWATER, etc int rdflags; /* RDF_UNDERWATER, etc */
byte *areabits; // if not NULL, only areas with set bits will be drawn byte *areabits; /* if not NULL, only areas with set bits will be drawn */
lightstyle_t *lightstyles; // [MAX_LIGHTSTYLES] lightstyle_t *lightstyles; /* [MAX_LIGHTSTYLES] */
int num_entities; int num_entities;
entity_t *entities; entity_t *entities;
@ -121,102 +116,97 @@ typedef struct
particle_t *particles; particle_t *particles;
} refdef_t; } refdef_t;
#define API_VERSION 3 /*
* these are the functions exported by the refresh module
// */
// these are the functions exported by the refresh module typedef struct {
// /* if api_version is different, the dll cannot be used */
typedef struct
{
// if api_version is different, the dll cannot be used
int api_version; int api_version;
// called when the library is loaded /* called when the library is loaded */
int (*Init) ( void *hinstance, void *wndproc ); int (*Init)(void *hinstance, void *wndproc);
// called before the library is unloaded /* called before the library is unloaded */
void (*Shutdown) (void); void (*Shutdown)(void);
// All data that will be used in a level should be /* All data that will be used in a level should be
// registered before rendering any frames to prevent disk hits, registered before rendering any frames to prevent disk hits,
// but they can still be registered at a later time but they can still be registered at a later time
// if necessary. if necessary.
//
// EndRegistration will free any remaining data that wasn't registered.
// Any model_s or skin_s pointers from before the BeginRegistration
// are no longer valid after EndRegistration.
//
// Skins and images need to be differentiated, because skins
// are flood filled to eliminate mip map edge errors, and pics have
// an implicit "pics/" prepended to the name. (a pic name that starts with a
// slash will not use the "pics/" prefix or the ".pcx" postfix)
void (*BeginRegistration) (char *map);
struct model_s *(*RegisterModel) (char *name);
struct image_s *(*RegisterSkin) (char *name);
struct image_s *(*RegisterPic) (char *name);
void (*SetSky) (char *name, float rotate, vec3_t axis);
void (*EndRegistration) (void);
void (*RenderFrame) (refdef_t *fd); EndRegistration will free any remaining data that wasn't registered.
void (*DrawStretchPic) (int x, int y, int w, int h, char *name); Any model_s or skin_s pointers from before the BeginRegistration
void (*DrawChar) (int x, int y, int c); are no longer valid after EndRegistration.
void (*DrawGetPicSize) (int *w, int *h, char *name); // will return 0 0 if not found
void (*DrawPic) (int x, int y, char *name);
void (*DrawTileClear) (int x, int y, int w, int h, char *name);
void (*DrawFill) (int x, int y, int w, int h, int c);
void (*DrawFadeScreen) (void);
// Draw images for cinematic rendering (which can have a different palette). Note that calls Skins and images need to be differentiated, because skins
void (*DrawStretchRaw) (int x, int y, int w, int h, int cols, int rows, byte *data); are flood filled to eliminate mip map edge errors, and pics have
an implicit "pics/" prepended to the name. (a pic name that starts with a
slash will not use the "pics/" prefix or the ".pcx" postfix) */
void (*BeginRegistration)(char *map);
struct model_s *(*RegisterModel)(char *name);
struct image_s *(*RegisterSkin)(char *name);
struct image_s *(*RegisterPic)(char *name);
void (*SetSky)(char *name, float rotate, vec3_t axis);
void (*EndRegistration)(void);
/* void (*RenderFrame)(refdef_t *fd);
** video mode and refresh state management entry points void (*DrawStretchPic)(int x, int y, int w, int h, char *name);
*/ void (*DrawChar)(int x, int y, int c);
void (*CinematicSetPalette)( const unsigned char *palette); // NULL = game palette void (*DrawGetPicSize)(int *w, int *h, char *name); /* will return 0 0 if not found */
void (*BeginFrame)( float camera_separation ); void (*DrawPic)(int x, int y, char *name);
void (*EndFrame) (void); void (*DrawTileClear)(int x, int y, int w, int h, char *name);
void (*DrawFill)(int x, int y, int w, int h, int c);
void (*DrawFadeScreen)(void);
void (*AppActivate)( qboolean activate ); /* Draw images for cinematic rendering (which can have a different palette). Note that calls */
void (*DrawStretchRaw)(int x, int y, int w, int h, int cols, int rows, byte *data);
/* video mode and refresh state management entry points */
void (*CinematicSetPalette)(const unsigned char *palette); /* NULL = game palette */
void (*BeginFrame)(float camera_separation);
void (*EndFrame)(void);
void (*AppActivate)(qboolean activate);
} refexport_t; } refexport_t;
// /*
// these are the functions imported by the refresh module * these are the functions imported by the refresh module
// */
typedef struct typedef struct {
{ void (*Sys_Error)(int err_level, char *str, ...);
void (*Sys_Error) (int err_level, char *str, ...);
void (*Cmd_AddCommand) (char *name, void(*cmd)(void)); void (*Cmd_AddCommand)(char *name, void(*cmd)(void));
void (*Cmd_RemoveCommand) (char *name); void (*Cmd_RemoveCommand)(char *name);
int (*Cmd_Argc) (void); int (*Cmd_Argc)(void);
char *(*Cmd_Argv) (int i); char *(*Cmd_Argv)(int i);
void (*Cmd_ExecuteText) (int exec_when, char *text); void (*Cmd_ExecuteText)(int exec_when, char *text);
void (*Con_Printf) (int print_level, char *str, ...); void (*Con_Printf)(int print_level, char *str, ...);
// files will be memory mapped read only /* files will be memory mapped read only
// the returned buffer may be part of a larger pak file, the returned buffer may be part of a larger pak file,
// or a discrete file from anywhere in the quake search path or a discrete file from anywhere in the quake search path
// a -1 return means the file does not exist a -1 return means the file does not exist
// NULL can be passed for buf to just determine existance NULL can be passed for buf to just determine existance */
int (*FS_LoadFile) (char *name, void **buf); int (*FS_LoadFile)(char *name, void **buf);
void (*FS_FreeFile) (void *buf); void (*FS_FreeFile)(void *buf);
// gamedir will be the current directory that generated /* The gamedir is the ./baseq2 directory (read only) and the
// files should be stored to, ie: "f:\quake\id1" ~/.quake2/baseq2 directory for write operations. The later
char *(*FS_Gamedir) (void); overrides the first */
char *(*FS_Gamedir)(void);
cvar_t *(*Cvar_Get) (char *name, char *value, int flags); cvar_t *(*Cvar_Get)(char *name, char *value, int flags);
cvar_t *(*Cvar_Set)( char *name, char *value ); cvar_t *(*Cvar_Set)(char *name, char *value);
void (*Cvar_SetValue)( char *name, float value ); void (*Cvar_SetValue)(char *name, float value);
qboolean (*Vid_GetModeInfo)( int *width, int *height, int mode ); qboolean(*Vid_GetModeInfo)(int *width, int *height, int mode);
void (*Vid_MenuInit)( void ); void (*Vid_MenuInit)(void);
void (*Vid_NewWindow)( int width, int height ); void (*Vid_NewWindow)(int width, int height);
} refimport_t; } refimport_t;
// this is the only function actually exported at the linker level /* this is the only function actually exported at the linker level */
typedef refexport_t (*GetRefAPI_t) (refimport_t); typedef refexport_t (*GetRefAPI_t)(refimport_t);
#endif // __REF_H #endif

View file

@ -1,62 +1,63 @@
/* /*
Copyright (C) 1997-2001 Id Software, Inc. * Copyright (C) 1997-2001 Id Software, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* =======================================================================
*
* Header for the 2D client stuff and the .cinf file format
*
* =======================================================================
*/
This program is free software; you can redistribute it and/or void SCR_Init(void);
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, void SCR_UpdateScreen(void);
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details. void SCR_SizeUp(void);
void SCR_SizeDown(void);
void SCR_CenterPrint(char *str);
void SCR_BeginLoadingPlaque(void);
void SCR_EndLoadingPlaque(void);
You should have received a copy of the GNU General Public License void SCR_DebugGraph(float value, int color);
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ void SCR_TouchPics(void);
// screen.h
void SCR_Init (void); void SCR_RunConsole(void);
void SCR_UpdateScreen (void);
void SCR_SizeUp (void);
void SCR_SizeDown (void);
void SCR_CenterPrint (char *str);
void SCR_BeginLoadingPlaque (void);
void SCR_EndLoadingPlaque (void);
void SCR_DebugGraph (float value, int color);
void SCR_TouchPics (void);
void SCR_RunConsole (void);
extern float scr_con_current; extern float scr_con_current;
extern float scr_conlines; // lines of console to display extern float scr_conlines; /* lines of console to display */
extern int sb_lines; extern int sb_lines;
extern cvar_t *scr_viewsize; extern cvar_t *scr_viewsize;
extern cvar_t *crosshair; extern cvar_t *crosshair;
extern vrect_t scr_vrect; // position of render window extern vrect_t scr_vrect; /* position of render window */
extern char crosshair_pic[MAX_QPATH]; extern char crosshair_pic[MAX_QPATH];
extern int crosshair_width, crosshair_height; extern int crosshair_width, crosshair_height;
void SCR_AddDirtyPoint (int x, int y); void SCR_AddDirtyPoint(int x, int y);
void SCR_DirtyScreen (void); void SCR_DirtyScreen(void);
//
// scr_cin.c
//
void SCR_PlayCinematic (char *name);
qboolean SCR_DrawCinematic (void);
void SCR_RunCinematic (void);
void SCR_StopCinematic (void);
void SCR_FinishCinematic (void);
void SCR_PlayCinematic(char *name);
qboolean SCR_DrawCinematic(void);
void SCR_RunCinematic(void);
void SCR_StopCinematic(void);
void SCR_FinishCinematic(void);

View file

@ -1,41 +1,44 @@
/* /*
Copyright (C) 1997-2001 Id Software, Inc. * Copyright (C) 1997-2001 Id Software, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* =======================================================================
*
* ABI to the video oute driver
*
* =======================================================================
*/
This program is free software; you can redistribute it and/or typedef struct vrect_s {
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
// vid.h -- video driver defs
typedef struct vrect_s
{
int x,y,width,height; int x,y,width,height;
} vrect_t; } vrect_t;
typedef struct typedef struct {
{ int width, height; /* coordinates from main game */
int width, height; // coordinates from main game
} viddef_t; } viddef_t;
extern viddef_t viddef; // global video state extern viddef_t viddef; /* global video state */
// Video module initialisation etc /* Video module initialisation, etc */
void VID_Init (void); void VID_Init(void);
void VID_Shutdown (void); void VID_Shutdown(void);
void VID_CheckChanges (void); void VID_CheckChanges(void);
void VID_MenuInit( void ); void VID_MenuInit(void);
void VID_MenuDraw( void ); void VID_MenuDraw(void);
const char *VID_MenuKey( int ); const char *VID_MenuKey(int);