aboutsummaryrefslogtreecommitdiff
path: root/advtrains/models/advtrains_signal_wall_l.b3d
diff options
context:
space:
mode:
authororwell <orwell@bleipb.de>2025-01-09 08:53:27 +0100
committerorwell <orwell@bleipb.de>2025-01-09 09:09:02 +0100
commit021332c4aaaf8cfd18b3f08e5f069b203097f01d (patch)
tree96acd5e67f0fdd1cd3cf3ee88cd0b30a0669b912 /advtrains/models/advtrains_signal_wall_l.b3d
parent8c91ce1ec178d6d49f3ddefc57d99eecd0caef3c (diff)
downloadadvtrains-021332c4aaaf8cfd18b3f08e5f069b203097f01d.tar.gz
advtrains-021332c4aaaf8cfd18b3f08e5f069b203097f01d.tar.bz2
advtrains-021332c4aaaf8cfd18b3f08e5f069b203097f01d.zip
Two occupation loops seem to have issues with endless loops, add guards
Diffstat (limited to 'advtrains/models/advtrains_signal_wall_l.b3d')
0 files changed, 0 insertions, 0 deletions
n class="hl com">/* Lower level lighting stuff */ // This directly sets the range of light. // Actually this is not the real maximum, and this is not the // brightest. The brightest is LIGHT_SUN. #define LIGHT_MAX 14 // Light is stored as 4 bits, thus 15 is the maximum. // This brightness is reserved for sunlight #define LIGHT_SUN 15 inline u8 diminish_light(u8 light) { if(light == 0) return 0; if(light >= LIGHT_MAX) return LIGHT_MAX - 1; return light - 1; } inline u8 diminish_light(u8 light, u8 distance) { if(distance >= light) return 0; return light - distance; } inline u8 undiminish_light(u8 light) { // We don't know if light should undiminish from this particular 0. // Thus, keep it at 0. if(light == 0) return 0; if(light == LIGHT_MAX) return light; return light + 1; } extern u8 light_decode_table[LIGHT_MAX+1]; inline u8 decode_light(u8 light) { if(light == LIGHT_SUN) return light_decode_table[LIGHT_MAX]; if(light > LIGHT_MAX) light = LIGHT_MAX; return light_decode_table[light]; } #endif