diff --git a/.gitignore b/.gitignore index 07d4bb4..ebcef5f 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ assets/vita/eboot.bin *.nacl *.sfo *.bin +*.o diff --git a/source/cl_parse.c b/source/cl_parse.c index 70e1d12..0b47135 100644 --- a/source/cl_parse.c +++ b/source/cl_parse.c @@ -1183,12 +1183,10 @@ void CL_ParseWeaponFire (void) kick[0] = MSG_ReadCoord (cl.protocolflags)/5; kick[1] = MSG_ReadCoord (cl.protocolflags)/5; kick[2] = MSG_ReadCoord (cl.protocolflags)/5; - - if (!(cl.perks & 64)) { - cl.gun_kick[0] += kick[0]; - cl.gun_kick[1] += kick[1]; - cl.gun_kick[2] += kick[2]; - } + + cl.gun_kick[0] += kick[0]; + cl.gun_kick[1] += kick[1]; + cl.gun_kick[2] += kick[2]; } /* =================== diff --git a/source/gl_rmain.c b/source/gl_rmain.c index b3a0402..8a56b52 100644 --- a/source/gl_rmain.c +++ b/source/gl_rmain.c @@ -1166,9 +1166,9 @@ R_RenderScene void R_RenderScene (void) { R_SetupScene (); //johnfitz -- this does everything that should be done once per call to RenderScene - +#ifndef VITA Fog_EnableGFog (); //johnfitz - +#endif Sky_DrawSky (); //johnfitz R_DrawWorld (); @@ -1188,9 +1188,9 @@ void R_RenderScene (void) R_DrawParticles (); QMB_DrawParticles(); - +#ifndef VITA Fog_DisableGFog (); //johnfitz - +#endif R_DrawViewModel (); //johnfitz -- moved here from R_RenderView R_DrawView2Model (); diff --git a/source/gl_sky.c b/source/gl_sky.c index 48b0831..1cf43f6 100644 --- a/source/gl_sky.c +++ b/source/gl_sky.c @@ -1026,5 +1026,7 @@ void Sky_DrawSky (void) glDepthMask(1); glDepthFunc(GL_LEQUAL); } +#ifndef VITA Fog_EnableGFog (); +#endif } diff --git a/source/menu.c b/source/menu.c index e34bd5e..80d17b3 100644 --- a/source/menu.c +++ b/source/menu.c @@ -107,6 +107,14 @@ typedef struct usermap_t custom_maps[50]; +#define BASE_MAP_COUNT 3 +char* base_maps [] = +{ + "ndu", + "warehouse", + "christmas_special" +}; + enum m_state_e m_state; int old_m_state; @@ -1691,6 +1699,7 @@ void Map_Finder(void) DIR* dir; struct dirent* ent; char map_dir[MAX_OSPATH]; + qboolean breakaway; for (int i = 0; i < 50; i++) { custom_maps[i].occupied = false; @@ -1706,74 +1715,98 @@ void Map_Finder(void) { while ((ent = readdir(dir))) { - if(!strcmp(COM_FileGetExtension(ent->d_name),"bsp") || !strcmp(COM_FileGetExtension(ent->d_name),"BSP")) { + if(!strcmp(COM_FileGetExtension(ent->d_name),"bsp") || !strcmp(COM_FileGetExtension(ent->d_name),"BSP")) + { + breakaway = false; char ntype[32]; COM_StripExtension(ent->d_name, ntype, sizeof(ntype)); - custom_maps[user_maps_num].occupied = true; - custom_maps[user_maps_num].map_name = malloc(sizeof(char)*32); - sprintf(custom_maps[user_maps_num].map_name, "%s", ntype); - char* setting_path; - FILE* setting_file; + for (int j = 0; j < BASE_MAP_COUNT; j++) + { + if (breakaway == true) + break; - setting_path = malloc(sizeof(char)*64); - custom_maps[user_maps_num].map_thumbnail_path = malloc(sizeof(char)*64); - - strcpy(setting_path, map_dir); - strcat(setting_path, "/"); - - strcpy(custom_maps[user_maps_num].map_thumbnail_path, "gfx/menu/custom/"); - strcat(setting_path, custom_maps[user_maps_num].map_name); - strcat(custom_maps[user_maps_num].map_thumbnail_path, custom_maps[user_maps_num].map_name); - strcat(custom_maps[user_maps_num].map_thumbnail_path, ".tga"); - strcat(setting_path, ".txt"); - - setting_file = fopen(setting_path, "r"); - - if (setting_file != NULL) { - int state; - state = 0; - int value; - - custom_maps[user_maps_num].map_name_pretty = malloc(sizeof(char)*32); - custom_maps[user_maps_num].map_desc_1 = malloc(sizeof(char)*40); - custom_maps[user_maps_num].map_desc_2 = malloc(sizeof(char)*40); - custom_maps[user_maps_num].map_desc_3 = malloc(sizeof(char)*40); - custom_maps[user_maps_num].map_desc_4 = malloc(sizeof(char)*40); - custom_maps[user_maps_num].map_desc_5 = malloc(sizeof(char)*40); - custom_maps[user_maps_num].map_desc_6 = malloc(sizeof(char)*40); - custom_maps[user_maps_num].map_desc_7 = malloc(sizeof(char)*40); - custom_maps[user_maps_num].map_desc_8 = malloc(sizeof(char)*40); - custom_maps[user_maps_num].map_author = malloc(sizeof(char)*40); - - char buffer[64]; - int bufferlen = sizeof(buffer); - - while(fgets(buffer, bufferlen, setting_file)) { - // strip newlines - buffer[strcspn(buffer, "\r")] = 0; - buffer[strcspn(buffer, "\n")] = 0; - - switch(state) { - case 0: strcpy(custom_maps[user_maps_num].map_name_pretty, buffer); break; - case 1: strcpy(custom_maps[user_maps_num].map_desc_1, buffer); break; - case 2: strcpy(custom_maps[user_maps_num].map_desc_2, buffer); break; - case 3: strcpy(custom_maps[user_maps_num].map_desc_3, buffer); break; - case 4: strcpy(custom_maps[user_maps_num].map_desc_4, buffer); break; - case 5: strcpy(custom_maps[user_maps_num].map_desc_5, buffer); break; - case 6: strcpy(custom_maps[user_maps_num].map_desc_6, buffer); break; - case 7: strcpy(custom_maps[user_maps_num].map_desc_7, buffer); break; - case 8: strcpy(custom_maps[user_maps_num].map_desc_8, buffer); break; - case 9: strcpy(custom_maps[user_maps_num].map_author, buffer); break; - case 10: value = 0; sscanf(buffer, "%d", &value); custom_maps[user_maps_num].map_use_thumbnail = value; break; - case 11: value = 0; sscanf(buffer, "%d", &value); custom_maps[user_maps_num].map_allow_game_settings = value; break; - default: break; + if(!strcmp(ntype, base_maps[j])) + { + //Con_Printf("ntype: %s\n base_map: %s\n", ntype, base_maps[j]); + breakaway = true; } - state++; } + + if (breakaway == true) + { + //Con_Printf("Breaking away at ntype: %s\n", ntype); + continue; + } + else + { + //Con_Printf("Success at ntype: %s\n", ntype); + custom_maps[user_maps_num].occupied = true; + custom_maps[user_maps_num].map_name = malloc(sizeof(char)*32); + sprintf(custom_maps[user_maps_num].map_name, "%s", ntype); + + char* setting_path; + FILE* setting_file; + + setting_path = malloc(sizeof(char)*64); + custom_maps[user_maps_num].map_thumbnail_path = malloc(sizeof(char)*64); + + strcpy(setting_path, map_dir); + strcat(setting_path, "/"); + + strcpy(custom_maps[user_maps_num].map_thumbnail_path, "gfx/menu/custom/"); + strcat(setting_path, custom_maps[user_maps_num].map_name); + strcat(custom_maps[user_maps_num].map_thumbnail_path, custom_maps[user_maps_num].map_name); + strcat(custom_maps[user_maps_num].map_thumbnail_path, ".tga"); + strcat(setting_path, ".txt"); + + setting_file = fopen(setting_path, "r"); + + if (setting_file != NULL) { + int state; + state = 0; + int value; + + custom_maps[user_maps_num].map_name_pretty = malloc(sizeof(char)*32); + custom_maps[user_maps_num].map_desc_1 = malloc(sizeof(char)*40); + custom_maps[user_maps_num].map_desc_2 = malloc(sizeof(char)*40); + custom_maps[user_maps_num].map_desc_3 = malloc(sizeof(char)*40); + custom_maps[user_maps_num].map_desc_4 = malloc(sizeof(char)*40); + custom_maps[user_maps_num].map_desc_5 = malloc(sizeof(char)*40); + custom_maps[user_maps_num].map_desc_6 = malloc(sizeof(char)*40); + custom_maps[user_maps_num].map_desc_7 = malloc(sizeof(char)*40); + custom_maps[user_maps_num].map_desc_8 = malloc(sizeof(char)*40); + custom_maps[user_maps_num].map_author = malloc(sizeof(char)*40); + + char buffer[64]; + int bufferlen = sizeof(buffer); + + while(fgets(buffer, bufferlen, setting_file)) { + // strip newlines + buffer[strcspn(buffer, "\r")] = 0; + buffer[strcspn(buffer, "\n")] = 0; + + switch(state) { + case 0: strcpy(custom_maps[user_maps_num].map_name_pretty, buffer); break; + case 1: strcpy(custom_maps[user_maps_num].map_desc_1, buffer); break; + case 2: strcpy(custom_maps[user_maps_num].map_desc_2, buffer); break; + case 3: strcpy(custom_maps[user_maps_num].map_desc_3, buffer); break; + case 4: strcpy(custom_maps[user_maps_num].map_desc_4, buffer); break; + case 5: strcpy(custom_maps[user_maps_num].map_desc_5, buffer); break; + case 6: strcpy(custom_maps[user_maps_num].map_desc_6, buffer); break; + case 7: strcpy(custom_maps[user_maps_num].map_desc_7, buffer); break; + case 8: strcpy(custom_maps[user_maps_num].map_desc_8, buffer); break; + case 9: strcpy(custom_maps[user_maps_num].map_author, buffer); break; + case 10: value = 0; sscanf(buffer, "%d", &value); custom_maps[user_maps_num].map_use_thumbnail = value; break; + case 11: value = 0; sscanf(buffer, "%d", &value); custom_maps[user_maps_num].map_allow_game_settings = value; break; + default: break; + } + state++; + } fclose(setting_file); } user_maps_num = user_maps_num + 1; + } } } closedir(dir); diff --git a/source/pr_cmds.c b/source/pr_cmds.c index 0b2a62b..bf4a196 100644 --- a/source/pr_cmds.c +++ b/source/pr_cmds.c @@ -312,17 +312,15 @@ static void PF_setmodel (void) /* ================= PF_bprint - broadcast print to everyone on server - -bprint(value) +bprint(style, value) ================= */ -static void PF_bprint (void) +void PF_bprint (void) { - char *s; - - s = PF_VarString(0); + // + float style = G_FLOAT(OFS_PARM0); + char *s = PF_VarString(1); SV_BroadcastPrintf ("%s", s); } diff --git a/source/r_alias.c b/source/r_alias.c index 1229fe7..d078565 100644 --- a/source/r_alias.c +++ b/source/r_alias.c @@ -1191,9 +1191,13 @@ void R_DrawAliasModel (entity_t *e) glBlendFunc (GL_ONE, GL_ONE); glDepthMask(GL_FALSE); glColor3f(entalpha,entalpha,entalpha); +#ifndef VITA Fog_StartAdditive (); +#endif GL_DrawAliasFrame (paliashdr, lerpdata); +#ifndef VITA Fog_StopAdditive (); +#endif glDepthMask(GL_TRUE); glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDisable(GL_BLEND); @@ -1254,9 +1258,13 @@ void R_DrawAliasModel (entity_t *e) glDepthMask(GL_FALSE); shading = false; glColor3f(entalpha,entalpha,entalpha); +#ifndef VITA Fog_StartAdditive (); +#endif GL_DrawAliasFrame (paliashdr, lerpdata); +#ifndef VITA Fog_StopAdditive (); +#endif glDepthMask(GL_TRUE); glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDisable(GL_BLEND); @@ -1273,9 +1281,13 @@ void R_DrawAliasModel (entity_t *e) glEnable(GL_BLEND); glBlendFunc (GL_ONE, GL_ONE); glDepthMask(GL_FALSE); +#ifndef VITA Fog_StartAdditive (); +#endif GL_DrawAliasFrame (paliashdr, lerpdata); +#ifndef VITA Fog_StopAdditive (); +#endif glDepthMask(GL_TRUE); glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); @@ -1290,9 +1302,13 @@ void R_DrawAliasModel (entity_t *e) glDepthMask(GL_FALSE); shading = false; glColor3f(entalpha,entalpha,entalpha); +#ifndef VITA Fog_StartAdditive (); +#endif GL_DrawAliasFrame (paliashdr, lerpdata); +#ifndef VITA Fog_StopAdditive (); +#endif glDepthMask(GL_TRUE); glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDisable(GL_BLEND); @@ -1331,9 +1347,13 @@ void R_DrawAliasModel (entity_t *e) glDepthMask(GL_FALSE); shading = false; glColor3f(entalpha,entalpha,entalpha); +#ifndef VITA Fog_StartAdditive (); +#endif GL_DrawAliasFrame (paliashdr, lerpdata); +#ifndef VITA Fog_StopAdditive (); +#endif glDepthMask(GL_TRUE); glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDisable(GL_BLEND); diff --git a/source/r_brush.c b/source/r_brush.c index 441b576..d2a9b83 100644 --- a/source/r_brush.c +++ b/source/r_brush.c @@ -370,10 +370,14 @@ void R_DrawSequentialPoly (msurface_t *s) else //case 3: texture in one pass, lightmap in second pass using 2x modulation blend func, fog in third pass { //first pass -- texture with no fog +#ifndef VITA Fog_DisableGFog (); +#endif VITA GL_Bind (t->gltexture); DrawGLPoly (s->polys); +#ifndef VITA Fog_EnableGFog (); +#endif rs_brushpasses++; //second pass -- lightmap with black fog, modulate blended @@ -382,7 +386,9 @@ void R_DrawSequentialPoly (msurface_t *s) glDepthMask (GL_FALSE); glEnable (GL_BLEND); glBlendFunc(GL_DST_COLOR, GL_SRC_COLOR); //2x modulate +#ifndef VITA Fog_StartAdditive (); +#endif #ifdef VITA glBegin(GL_TRIANGLE_FAN); #else @@ -395,10 +401,13 @@ void R_DrawSequentialPoly (msurface_t *s) glVertex3fv (v); } glEnd (); +#ifndef VITA Fog_StopAdditive (); +#endif rs_brushpasses++; //third pass -- black geo with normal fog, additive blended +#ifndef VITA if (Fog_GetDensity() > 0) { glBlendFunc(GL_ONE, GL_ONE); //add @@ -409,6 +418,7 @@ void R_DrawSequentialPoly (msurface_t *s) glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); rs_brushpasses++; } +#endif glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDisable (GL_BLEND); @@ -451,10 +461,14 @@ void R_DrawSequentialPoly (msurface_t *s) else //case 6: texture in one pass, lightmap in a second pass, fog in third pass { //first pass -- texture with no fog +#ifndef VITA Fog_DisableGFog (); +#endif GL_Bind (t->gltexture); DrawGLPoly (s->polys); +#ifndef VITA Fog_EnableGFog (); +#endif rs_brushpasses++; //second pass -- lightmap with black fog, modulate blended @@ -463,7 +477,9 @@ void R_DrawSequentialPoly (msurface_t *s) glDepthMask (GL_FALSE); glEnable (GL_BLEND); glBlendFunc (GL_ZERO, GL_SRC_COLOR); //modulate +#ifndef VITA Fog_StartAdditive (); +#endif #ifdef VITA glBegin(GL_TRIANGLE_FAN); #else @@ -476,9 +492,11 @@ void R_DrawSequentialPoly (msurface_t *s) glVertex3fv (v); } glEnd (); +#ifndef VITA Fog_StopAdditive (); +#endif rs_brushpasses++; - +#ifndef VITA //third pass -- black geo with normal fog, additive blended if (Fog_GetDensity() > 0) { @@ -490,7 +508,7 @@ void R_DrawSequentialPoly (msurface_t *s) glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); rs_brushpasses++; } - +#endif glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDisable (GL_BLEND); glDepthMask (GL_TRUE); @@ -517,9 +535,13 @@ fullbrights: glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glColor3f (entalpha, entalpha, entalpha); GL_Bind (t->fullbright); +#ifndef VITA Fog_StartAdditive (); +#endif DrawGLPoly (s->polys); +#ifndef VITA Fog_StopAdditive (); +#endif glColor3f(1, 1, 1); glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); diff --git a/source/r_world.c b/source/r_world.c index febab07..9517616 100644 --- a/source/r_world.c +++ b/source/r_world.c @@ -1197,24 +1197,32 @@ void R_DrawTextureChains (qmodel_t *model, entity_t *ent, texchain_t chain) //to make fog work with multipass lightmapping, need to do one pass //with no fog, one modulate pass with black fog, and one additive //pass with black geometry and normal fog +#ifndef VITA Fog_DisableGFog (); +#endif R_DrawTextureChains_TextureOnly (model, ent, chain); +#ifndef VITA Fog_EnableGFog (); +#endif glDepthMask (GL_FALSE); glEnable (GL_BLEND); glBlendFunc (GL_DST_COLOR, GL_SRC_COLOR); //2x modulate +#ifndef VITA Fog_StartAdditive (); +#endif R_DrawLightmapChains (); +#ifndef VITA Fog_StopAdditive (); - //if (Fog_GetDensity() > 0) - //{ - //glBlendFunc(GL_ONE, GL_ONE); //add - //glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - //glColor3f(0,0,0); - //R_DrawTextureChains_TextureOnly (model, ent, chain); - //glColor3f(1,1,1); - //glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); - //} + if (Fog_GetDensity() > 0) + { + glBlendFunc(GL_ONE, GL_ONE); //add + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glColor3f(0,0,0); + R_DrawTextureChains_TextureOnly (model, ent, chain); + glColor3f(1,1,1); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + } +#endif glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDisable (GL_BLEND); glDepthMask (GL_TRUE); @@ -1239,24 +1247,32 @@ void R_DrawTextureChains (qmodel_t *model, entity_t *ent, texchain_t chain) //to make fog work with multipass lightmapping, need to do one pass //with no fog, one modulate pass with black fog, and one additive //pass with black geometry and normal fog +#ifndef VITA Fog_DisableGFog (); +#endif R_DrawTextureChains_TextureOnly (model, ent, chain); +#ifndef VITA Fog_EnableGFog (); +#endif glDepthMask (GL_FALSE); glEnable (GL_BLEND); glBlendFunc(GL_ZERO, GL_SRC_COLOR); //modulate +#ifndef VITA Fog_StartAdditive (); +#endif R_DrawLightmapChains (); +#ifndef VITA Fog_StopAdditive (); - //if (Fog_GetDensity() > 0) - //{ - //glBlendFunc(GL_ONE, GL_ONE); //add - //glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - //glColor3f(0,0,0); - //R_DrawTextureChains_TextureOnly (model, ent, chain); - //glColor3f(1,1,1); - //glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); - //} + if (Fog_GetDensity() > 0) + { + glBlendFunc(GL_ONE, GL_ONE); //add + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glColor3f(0,0,0); + R_DrawTextureChains_TextureOnly (model, ent, chain); + glColor3f(1,1,1); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + } +#endif glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDisable (GL_BLEND); glDepthMask (GL_TRUE); @@ -1273,9 +1289,13 @@ fullbrights: glBlendFunc (GL_ONE, GL_ONE); glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glColor3f (entalpha, entalpha, entalpha); +#ifndef VITA Fog_StartAdditive (); +#endif R_DrawTextureChains_Glow (model, ent, chain); +#ifndef VITA Fog_StopAdditive (); +#endif glColor3f (1, 1, 1); glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);