X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=r_modules.c;h=a4e046ebadc7826f7cc4ebf46fee424215e36dbf;hb=560650a8a99a591398cd7f4c2df893aa5a9db2c2;hp=69086f6771d81d795f973b1ff9ecc3ee1b4c90eb;hpb=4d162c39ec059b7f3191fbb4fb18304bc9b1db59;p=xonotic%2Fdarkplaces.git diff --git a/r_modules.c b/r_modules.c index 69086f67..a4e046eb 100644 --- a/r_modules.c +++ b/r_modules.c @@ -7,22 +7,23 @@ typedef struct rendermodule_s { int active; // set by start, cleared by shutdown char *name; - void(*start)(); - void(*shutdown)(); - void(*newmap)(); + void(*start)(void); + void(*shutdown)(void); + void(*newmap)(void); } rendermodule_t; rendermodule_t rendermodule[MAXRENDERMODULES]; -void R_Modules_Init() +void R_Modules_Init(void) { int i; + Cmd_AddCommand("r_restart", R_Modules_Restart); for (i = 0;i < MAXRENDERMODULES;i++) rendermodule[i].name = NULL; } -void R_RegisterModule(char *name, void(*start)(), void(*shutdown)(), void(*newmap)()) +void R_RegisterModule(char *name, void(*start)(void), void(*shutdown)(void), void(*newmap)(void)) { int i; for (i = 0;i < MAXRENDERMODULES;i++) @@ -41,7 +42,7 @@ void R_RegisterModule(char *name, void(*start)(), void(*shutdown)(), void(*newma rendermodule[i].newmap = newmap; } -void R_Modules_Start () +void R_Modules_Start(void) { int i; for (i = 0;i < MAXRENDERMODULES;i++) @@ -55,10 +56,11 @@ void R_Modules_Start () } } -void R_Modules_Shutdown () +void R_Modules_Shutdown(void) { int i; - for (i = 0;i < MAXRENDERMODULES;i++) + // shutdown in reverse + for (i = MAXRENDERMODULES - 1;i >= 0;i--) { if (rendermodule[i].name == NULL) continue; @@ -69,13 +71,14 @@ void R_Modules_Shutdown () } } -void R_Modules_Restart () +void R_Modules_Restart(void) { + Con_Printf("restarting renderer\n"); R_Modules_Shutdown(); R_Modules_Start(); } -void R_Modules_NewMap () +void R_Modules_NewMap(void) { int i; for (i = 0;i < MAXRENDERMODULES;i++) @@ -87,3 +90,4 @@ void R_Modules_NewMap () rendermodule[i].newmap(); } } +