diff --git a/polymer/eduke32/source/actors.c b/polymer/eduke32/source/actors.c index 589dcfda5..f3de67d2f 100644 --- a/polymer/eduke32/source/actors.c +++ b/polymer/eduke32/source/actors.c @@ -692,7 +692,7 @@ static void G_MoveZombieActors(void) default: ActorExtra[i].timetosleep = 0; A_PlayAlertSound(i); - changespritestat(i,1); + changespritestat(i, STAT_ACTOR); break; } else ActorExtra[i].timetosleep = 0; @@ -3897,7 +3897,7 @@ static void G_MoveActors(void) if (ActorExtra[i].timetosleep > SLEEPTIME) { ActorExtra[i].timetosleep = 0; - changespritestat(i,2); + changespritestat(i, STAT_ZOMBIEACTOR); goto BOLT; } } @@ -7518,6 +7518,64 @@ static void G_MoveEffectors(void) //STATNUM 3 A_SetSprite(k,CLIPMASK0); } break; +#if 1 // POLYMER + case 49: + { + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].sector = SECT; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].x = SX; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].y = SY; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].z = SZ; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].range = SHT; + if ((sprite[i].xvel | sprite[i].yvel | sprite[i].zvel) != 0) + { + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].color[0] = sprite[i].xvel; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].color[1] = sprite[i].yvel; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].color[2] = sprite[i].zvel; + } + else + { + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].color[0] = hictinting[PL].r; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].color[1] = hictinting[PL].g; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].color[2] = hictinting[PL].b; + } + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].radius = 0; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].angle = SA; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].horiz = SH; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].priority = SS; + if (gamelightcount < PR_MAXLIGHTS) + gamelightcount++; + break; + } + case 50: + { + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].sector = SECT; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].x = SX; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].y = SY; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].z = SZ; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].range = SHT; + if ((sprite[i].xvel | sprite[i].yvel | sprite[i].zvel) != 0) + { + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].color[0] = sprite[i].xvel; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].color[1] = sprite[i].yvel; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].color[2] = sprite[i].zvel; + } + else + { + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].color[0] = hictinting[PL].r; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].color[1] = hictinting[PL].g; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].color[2] = hictinting[PL].b; + } + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].radius = 256; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].faderadius = 200; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].angle = SA; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].horiz = SH; + gamelights[gamelightcount&(PR_MAXLIGHTS-1)].priority = SS; + if (gamelightcount < PR_MAXLIGHTS) + gamelightcount++; + break; + } +#endif // POLYMER + } BOLT: i = nexti; diff --git a/polymer/eduke32/source/astub.c b/polymer/eduke32/source/astub.c index 63c3f01cb..bfab87b7f 100644 --- a/polymer/eduke32/source/astub.c +++ b/polymer/eduke32/source/astub.c @@ -9583,7 +9583,7 @@ void ExtPreCheckKeys(void) // just before drawrooms w = nextspritesect[w]; } } - } + } if (floor_over_floor) SE40Code(pos.x,pos.y,pos.z,ang,horiz); if (purpleon) clearview(255); if (sidemode != 0) diff --git a/polymer/eduke32/source/game.c b/polymer/eduke32/source/game.c index 35f675e3a..0d9e01797 100644 --- a/polymer/eduke32/source/game.c +++ b/polymer/eduke32/source/game.c @@ -4876,7 +4876,7 @@ int32_t A_Spawn(int32_t j, int32_t pn) if (!(sp->picnum == CAMERAPOLE || sp->picnum == GENERICPOLE)) { sp->picnum = CAMERA1; - changespritestat(i,1); + changespritestat(i, STAT_ACTOR); } } } @@ -4916,15 +4916,15 @@ int32_t A_Spawn(int32_t j, int32_t pn) { if (sprite[j].picnum == RESPAWN) ActorExtra[i].tempang = sprite[i].pal = sprite[j].pal; - changespritestat(i,1); + changespritestat(i, STAT_ACTOR); } - else changespritestat(i,2); + else changespritestat(i, STAT_ZOMBIEACTOR); } else { sp->clipdist = 40; sp->owner = i; - changespritestat(i,1); + changespritestat(i, STAT_ACTOR); } ActorExtra[i].timetosleep = 0; @@ -5074,7 +5074,7 @@ int32_t A_Spawn(int32_t j, int32_t pn) if (j == -1) { sp->cstat = (int16_t) 32768; - changespritestat(i,2); + changespritestat(i, STAT_ZOMBIEACTOR); } else { @@ -5207,7 +5207,7 @@ int32_t A_Spawn(int32_t j, int32_t pn) sp->extra = 20; sp->cstat |= 257; } - changespritestat(i,2); + changespritestat(i, STAT_ZOMBIEACTOR); break; case HYDRENT__STATIC: @@ -5406,7 +5406,7 @@ int32_t A_Spawn(int32_t j, int32_t pn) sp->clipdist = 32; } - changespritestat(i,2); + changespritestat(i, STAT_ZOMBIEACTOR); break; case DUKELYINGDEAD__STATIC: @@ -5444,7 +5444,7 @@ int32_t A_Spawn(int32_t j, int32_t pn) sp->hitag = 0; } case WEATHERWARN__STATIC: - changespritestat(i,1); + changespritestat(i, STAT_ACTOR); break; case SPOTLITE__STATIC: @@ -5744,7 +5744,7 @@ int32_t A_Spawn(int32_t j, int32_t pn) case LETTER__STATIC: sp->extra = 1; sp->cstat |= 257; - changespritestat(i,1); + changespritestat(i, STAT_ACTOR); break; case OCTABRAINSTAYPUT__STATIC: case LIZTROOPSTAYPUT__STATIC: @@ -5864,9 +5864,9 @@ int32_t A_Spawn(int32_t j, int32_t pn) { ActorExtra[i].timetosleep = 0; A_PlayAlertSound(i); - changespritestat(i,1); + changespritestat(i, STAT_ACTOR); } - else changespritestat(i,2); + else changespritestat(i, STAT_ZOMBIEACTOR); } if (sp->picnum == ROTATEGUN) @@ -5904,7 +5904,7 @@ int32_t A_Spawn(int32_t j, int32_t pn) A_AddToDeleteQueue(i); } - changespritestat(i,1); + changespritestat(i, STAT_ACTOR); A_GetZLimits(i); @@ -5944,7 +5944,8 @@ int32_t A_Spawn(int32_t j, int32_t pn) } sp->extra = 130; CS |= 256; // Make it hitable - } else CS |= 257; + } + else CS |= 257; if (sp->picnum == REACTOR || sp->picnum == REACTOR2) sp->extra = g_impactDamage; @@ -5958,7 +5959,7 @@ int32_t A_Spawn(int32_t j, int32_t pn) sp->pal = 0; SS = -17; - changespritestat(i,2); + changespritestat(i, STAT_ZOMBIEACTOR); break; case ATOMICHEALTH__STATIC: @@ -6036,10 +6037,10 @@ int32_t A_Spawn(int32_t j, int32_t pn) sp->shade = -17; - if (j >= 0) changespritestat(i,1); + if (j >= 0) changespritestat(i, STAT_ACTOR); else { - changespritestat(i,2); + changespritestat(i, STAT_ZOMBIEACTOR); A_Fall(i); } break; @@ -6068,7 +6069,7 @@ int32_t A_Spawn(int32_t j, int32_t pn) sp->xrepeat = sp->yrepeat = 24; sp->shade = -127; sp->extra = g_impactDamage<<2; - changespritestat(i,2); + changespritestat(i, STAT_ZOMBIEACTOR); break; case STEAM__STATIC: @@ -6085,6 +6086,16 @@ int32_t A_Spawn(int32_t j, int32_t pn) break; case SECTOREFFECTOR__STATIC: + switch (sp->lotag) + { + + case 49: + case 50: + changespritestat(i, STAT_EFFECTOR); + goto SPAWN_END; + break; + } + sp->yvel = sector[sect].extra; sp->cstat |= 32768; sp->xrepeat = sp->yrepeat = 0; @@ -6414,7 +6425,7 @@ int32_t A_Spawn(int32_t j, int32_t pn) // Bsprintf(tempbuf,"Found lonely Sector Effector (lotag 0) at (%d,%d)\n",sp->x,sp->y); // G_GameExit(tempbuf); OSD_Printf(OSD_ERROR "Found lonely Sector Effector (lotag 0) at (%d,%d)\n",sp->x,sp->y); - changespritestat(i,1); + changespritestat(i, STAT_ACTOR); if (apScriptGameEvent[EVENT_SPAWN]) { int32_t pl=A_FindPlayer(&sprite[i],&p); @@ -6531,7 +6542,7 @@ int32_t A_Spawn(int32_t j, int32_t pn) changespritestat(i,15); break; default: - changespritestat(i,3); + changespritestat(i, STAT_EFFECTOR); break; } @@ -6623,7 +6634,7 @@ int32_t A_Spawn(int32_t j, int32_t pn) if (sp->picnum == EGG) sp->clipdist = 24; sp->cstat = 257|(krand()&4); - changespritestat(i,2); + changespritestat(i, STAT_ZOMBIEACTOR); } break; case TOILETWATER__STATIC: @@ -6632,6 +6643,7 @@ int32_t A_Spawn(int32_t j, int32_t pn) break; } +SPAWN_END: if (apScriptGameEvent[EVENT_SPAWN]) { int32_t pl=A_FindPlayer(&sprite[i],&p); diff --git a/polymer/eduke32/source/gamedef.c b/polymer/eduke32/source/gamedef.c index 978b5c767..3765e376a 100644 --- a/polymer/eduke32/source/gamedef.c +++ b/polymer/eduke32/source/gamedef.c @@ -604,7 +604,7 @@ const memberlabel_t ActorLabels[]= { "htflags", ACTOR_HTFLAGS, 0, 0 }, - { "alpha", ACTOR_ALPHA, 0, 0 }, + { "alpha", ACTOR_ALPHA, 0, 0 }, { "", -1, 0, 0 } // END OF LIST }; diff --git a/polymer/eduke32/source/gamestructures.c b/polymer/eduke32/source/gamestructures.c index 4693fccda..77df20d72 100644 --- a/polymer/eduke32/source/gamestructures.c +++ b/polymer/eduke32/source/gamestructures.c @@ -3533,7 +3533,7 @@ static inline void X_AccessSprite(int32_t iSet, int32_t lVar1, int32_t lLabelID, case ACTOR_ALPHA: if (iSet) { - spriteext[iActor].alpha=(float) (lValue/255.0f); + spriteext[iActor].alpha=(float)(lValue/255.0f); return; } Gv_SetVar(lVar2, (uint8_t)(spriteext[iActor].alpha * 255.0f), vm.g_i, vm.g_p); diff --git a/polymer/eduke32/source/player.c b/polymer/eduke32/source/player.c index c45fef74b..ca69fdc68 100644 --- a/polymer/eduke32/source/player.c +++ b/polymer/eduke32/source/player.c @@ -3259,13 +3259,13 @@ void getinput(int32_t snum) loc.extbits = 0; // if (apScriptGameEvent[EVENT_PROCESSINPUT] || apScriptGameEvent[EVENT_MOVEFORWARD]) - loc.extbits |= BUTTON(gamefunc_Move_Forward) || (vel > 0); + loc.extbits |= BUTTON(gamefunc_Move_Forward) || (vel > 0); // if (apScriptGameEvent[EVENT_PROCESSINPUT] || apScriptGameEvent[EVENT_MOVEBACKWARD]) - loc.extbits |= (BUTTON(gamefunc_Move_Backward) || (vel < 0))<<1; + loc.extbits |= (BUTTON(gamefunc_Move_Backward) || (vel < 0))<<1; // if (apScriptGameEvent[EVENT_PROCESSINPUT] || apScriptGameEvent[EVENT_STRAFELEFT]) - loc.extbits |= (BUTTON(gamefunc_Strafe_Left) || (svel > 0))<<2; + loc.extbits |= (BUTTON(gamefunc_Strafe_Left) || (svel > 0))<<2; // if (apScriptGameEvent[EVENT_PROCESSINPUT] || apScriptGameEvent[EVENT_STRAFERIGHT]) - loc.extbits |= (BUTTON(gamefunc_Strafe_Right) || (svel < 0))<<3; + loc.extbits |= (BUTTON(gamefunc_Strafe_Right) || (svel < 0))<<3; if (apScriptGameEvent[EVENT_PROCESSINPUT] || apScriptGameEvent[EVENT_TURNLEFT]) loc.extbits |= BUTTON(gamefunc_Turn_Left)<<4; if (apScriptGameEvent[EVENT_PROCESSINPUT] || apScriptGameEvent[EVENT_TURNRIGHT]) diff --git a/polymer/eduke32/source/premap.c b/polymer/eduke32/source/premap.c index 9e49ebcd5..19b55277e 100644 --- a/polymer/eduke32/source/premap.c +++ b/polymer/eduke32/source/premap.c @@ -987,64 +987,6 @@ static inline void prelevel(char g) { if (PN == SECTOREFFECTOR && SLT == 14) continue; -#if 1 // POLYMER - if (PN == SECTOREFFECTOR && SLT == 49) - { - staticlights[staticlightcount].sector = SECT; - staticlights[staticlightcount].x = SX; - staticlights[staticlightcount].y = SY; - staticlights[staticlightcount].z = SZ; - staticlights[staticlightcount].range = SHT; - if ((sprite[i].xvel | sprite[i].yvel | sprite[i].zvel) != 0) - { - staticlights[staticlightcount].color[0] = sprite[i].xvel; - staticlights[staticlightcount].color[1] = sprite[i].yvel; - staticlights[staticlightcount].color[2] = sprite[i].zvel; - } - else - { - staticlights[staticlightcount].color[0] = hictinting[PL].r; - staticlights[staticlightcount].color[1] = hictinting[PL].g; - staticlights[staticlightcount].color[2] = hictinting[PL].b; - } - staticlights[staticlightcount].radius = 0; - staticlights[staticlightcount].angle = SA; - staticlights[staticlightcount].horiz = SH; - staticlights[staticlightcount].priority = SS; - staticlightcount++; - deletesprite(i); - continue; - } - if (PN == SECTOREFFECTOR && SLT == 50) - { - staticlights[staticlightcount].sector = SECT; - staticlights[staticlightcount].x = SX; - staticlights[staticlightcount].y = SY; - staticlights[staticlightcount].z = SZ; - staticlights[staticlightcount].range = SHT; - if ((sprite[i].xvel | sprite[i].yvel | sprite[i].zvel) != 0) - { - staticlights[staticlightcount].color[0] = sprite[i].xvel; - staticlights[staticlightcount].color[1] = sprite[i].yvel; - staticlights[staticlightcount].color[2] = sprite[i].zvel; - } - else - { - staticlights[staticlightcount].color[0] = hictinting[PL].r; - staticlights[staticlightcount].color[1] = hictinting[PL].g; - staticlights[staticlightcount].color[2] = hictinting[PL].b; - } - staticlights[staticlightcount].radius = 256; - staticlights[staticlightcount].faderadius = 200; - staticlights[staticlightcount].angle = SA; - staticlights[staticlightcount].horiz = SH; - staticlights[staticlightcount].priority = SS; - staticlightcount++; - deletesprite(i); - continue; - } -#endif // POLYMER - A_Spawn(-1,i); } } diff --git a/polymer/eduke32/source/sector.c b/polymer/eduke32/source/sector.c index f3df994cd..83735d8a7 100644 --- a/polymer/eduke32/source/sector.c +++ b/polymer/eduke32/source/sector.c @@ -2364,7 +2364,7 @@ void A_DamageObject(int32_t i,int32_t sn) if (sprite[i].statnum == 2) { - changespritestat(i,1); + changespritestat(i, STAT_ACTOR); ActorExtra[i].timetosleep = SLEEPTIME; } if ((RX < 24 || PN == SHARK) && sprite[sn].picnum == SHRINKSPARK) return;