| 2964 | } |
| 2965 | |
| 2966 | static void zSceneRenderPreFX() |
| 2967 | { |
| 2968 | zScene* s = globals.sceneCur; |
| 2969 | |
| 2970 | globals.currWorld = s->env->geom->world; |
| 2971 | |
| 2972 | xLightKit_Enable(NULL, globals.currWorld); |
| 2973 | |
| 2974 | zRenderState(SDRS_SkyBack); |
| 2975 | xSkyDome_Render(); |
| 2976 | |
| 2977 | zRenderState(SDRS_Environment); |
| 2978 | zLightAddLocalEnv(); |
| 2979 | zEnvRender(s->env); |
| 2980 | zLightRemoveLocalEnv(); |
| 2981 | |
| 2982 | zRenderState(SDRS_OpaqueModels); |
| 2983 | z_disco_floor::render_all(); |
| 2984 | |
| 2985 | U32 shadowHackCase = 0; |
| 2986 | |
| 2987 | xEnt** entptr = &s->act_ents[s->num_act_ents - 1]; |
| 2988 | xEnt** entlast = &s->act_ents[s->baseCount[eBaseTypeTrigger] + s->baseCount[eBaseTypePickup] + |
| 2989 | s->baseCount[eBaseTypeStatic]]; |
| 2990 | |
| 2991 | xModelBucket_Begin(); |
| 2992 | zEntSimpleObj_MgrUpdateRender(globals.currWorld, sTimeElapsed); |
| 2993 | zEntSimpleObj_MgrCustomRender(); |
| 2994 | |
| 2995 | while (entptr >= entlast) |
| 2996 | { |
| 2997 | xEnt* ent = *entptr; |
| 2998 | |
| 2999 | if (ent->collType != XENT_COLLTYPE_TRIG) |
| 3000 | { |
| 3001 | if (ent->collType == XENT_COLLTYPE_PLYR) |
| 3002 | { |
| 3003 | shadowHackCase = 1; |
| 3004 | } |
| 3005 | else if (ent->render) |
| 3006 | { |
| 3007 | xLightKit_Enable(ent->lightKit, globals.currWorld); |
| 3008 | ent->render(ent); |
| 3009 | } |
| 3010 | } |
| 3011 | |
| 3012 | entptr--; |
| 3013 | } |
| 3014 | |
| 3015 | zShrapnel_Render(); |
| 3016 | zEntPickup_Render((zEntPickup*)s->baseList[eBaseTypePickup], s->baseCount[eBaseTypePickup]); |
| 3017 | xModelBucket_RenderOpaque(); |
| 3018 | zNPCCommon_Glyphs_RenderAll(1); |
| 3019 | zNPCCommon_Hazards_RenderAll(1); |
| 3020 | xLightKit_Enable(NULL, globals.currWorld); |
| 3021 | zEntPickup_RenderList((zEntPickup*)s->baseList[eBaseTypePickup], s->baseCount[eBaseTypePickup]); |
| 3022 | |
| 3023 | if (shadowHackCase == 1 && globals.player.Transparent <= 0 && !oob_state::render()) |
no test coverage detected