void P_SpawnLightFlash(sector_t *sector) { lightflash_t *flash; sector->special &= ~31; flash = Z_Malloc(sizeof(*flash), PU_LEVSPEC, 0); memset(flash, 0, sizeof(*flash)); P_AddThinker(&flash->thinker); flash->thinker.function = T_LightFlash; flash->sector = sector; flash->maxlight = sector->lightlevel; flash->minlight = P_FindMinSurroundingLight(sector,sector->lightlevel); flash->maxtime = 64; flash->mintime = 7; flash->count = (P_Random(pr_lights)&flash->maxtime) + 1; }
// // P_SpawnLightFlash // After the map has been loaded, scan each sector // for specials that spawn thinkers // void P_SpawnLightFlash (sector_t* sector) { lightflash_t* flash; // nothing special about it during gameplay sector->special = 0; flash = (lightflash_t*)Z_Malloc ( sizeof(*flash), PU_LEVSPEC, 0); P_AddThinker (&flash->thinker); flash->thinker.function.acp1 = (actionf_p1) T_LightFlash; flash->sector = sector; flash->maxlight = sector->lightlevel; flash->minlight = P_FindMinSurroundingLight(sector,sector->lightlevel); flash->maxtime = 64; flash->mintime = 7; flash->count = (P_Random()&flash->maxtime)+1; }
/** * After the map has been loaded, scan each sector * for specials that spawn thinkers */ void P_SpawnLightFlash(sector_t *sector) { float lightlevel = P_GetFloatp(sector, DMU_LIGHT_LEVEL); lightflash_t *flash; // nothing special about it during gameplay P_ToXSector(sector)->special = 0; flash = Z_Malloc(sizeof(*flash), PU_MAPSPEC, 0); P_ThinkerAdd(&flash->thinker); flash->thinker.function = T_LightFlash; flash->sector = sector; flash->maxLight = lightlevel; flash->minLight = P_FindMinSurroundingLight(sector, lightlevel); flash->maxTime = 64; flash->minTime = 7; flash->count = (P_Random() & flash->maxTime) + 1; }
// // P_SpawnStrobeFlash // After the map has been loaded, scan each sector // for specials that spawn thinkers // void P_SpawnStrobeFlash(sector_t *sector, int fastOrSlow, int inSync) { strobe_t *flash = Z_Malloc(sizeof(*flash), PU_LEVSPEC, 0); memset(flash, 0, sizeof(*flash)); P_AddThinker(&flash->thinker); flash->sector = sector; flash->darktime = fastOrSlow; flash->brighttime = STROBEBRIGHT; flash->thinker.function = T_StrobeFlash; flash->maxlight = sector->lightlevel; flash->minlight = P_FindMinSurroundingLight(sector, sector->lightlevel); if (flash->minlight == flash->maxlight) flash->minlight = 0; // nothing special about it during gameplay sector->special = 0; flash->count = (inSync ? 1 : (P_Random() & 7) + 1); }
// // P_SpawnStrobeFlash // // Spawns a blinking light thinker // // Passed the sector that spawned the thinker, speed of blinking // and whether blinking is to by syncrhonous with other sectors // // Returns nothing // void P_SpawnStrobeFlash(sector_t *sector, int fastOrSlow, int inSync) { StrobeThinker *flash; flash = new StrobeThinker; flash->addThinker(); flash->sector = sector; flash->darktime = fastOrSlow; flash->brighttime = STROBEBRIGHT; flash->maxlight = sector->lightlevel; flash->minlight = P_FindMinSurroundingLight(sector, sector->lightlevel); if(flash->minlight == flash->maxlight) flash->minlight = 0; // nothing special about it during gameplay sector->special &= ~31; //jff 3/14/98 clear non-generalized sector type if(!inSync) flash->count = (P_Random(pr_lights)&7)+1; else flash->count = 1; }