/* EQEmu: EQEmulator Copyright (C) 2001-2026 EQEmu Development Team This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include "light_source.h" #include uint8 EQ::lightsource::TypeToLevel(uint8 light_type) { switch (light_type) { case LightTypeGlobeOfStars: return LightLevelBrilliant; // 10 case LightTypeFlamelessLantern: case LightTypeGreaterLightstone: return LightLevelLargeMagic; // 9 case LightTypeLargeLantern: return LightLevelLargeLantern; // 8 case LightTypeSteinOfMoggok: case LightTypeLightstone: return LightLevelMagicLantern; // 7 case LightTypeSmallLantern: return LightLevelSmallLantern; // 6 case LightTypeColdlight: case LightTypeUnknown2: return LightLevelBlueLight; // 5 case LightTypeFireBeetleEye: case LightTypeUnknown1: return LightLevelRedLight; // 4 case LightTypeTinyGlowingSkull: case LightTypeLightGlobe: return LightLevelSmallMagic; // 3 case LightTypeTorch: return LightLevelTorch; // 2 case LightTypeCandle: return LightLevelCandle; // 1 default: return LightLevelUnlit; // 0 } } bool EQ::lightsource::IsLevelGreater(uint8 left_type, uint8 right_type) { static const uint8 light_levels[LightTypeCount] = { LightLevelUnlit, /* LightTypeNone */ LightLevelCandle, /* LightTypeCandle */ LightLevelTorch, /* LightTypeTorch */ LightLevelSmallMagic, /* LightTypeTinyGlowingSkull */ LightLevelSmallLantern, /* LightTypeSmallLantern */ LightLevelMagicLantern, /* LightTypeSteinOfMoggok */ LightLevelLargeLantern, /* LightTypeLargeLantern */ LightLevelLargeMagic, /* LightTypeFlamelessLantern */ LightLevelBrilliant, /* LightTypeGlobeOfStars */ LightLevelSmallMagic, /* LightTypeLightGlobe */ LightLevelMagicLantern, /* LightTypeLightstone */ LightLevelLargeMagic, /* LightTypeGreaterLightstone */ LightLevelRedLight, /* LightTypeFireBeetleEye */ LightLevelBlueLight, /* LightTypeColdlight */ LightLevelRedLight, /* LightTypeUnknown1 */ LightLevelBlueLight /* LightTypeUnknown2 */ }; if (left_type >= LightTypeCount) { left_type = LightTypeNone; } if (right_type >= LightTypeCount) { right_type = LightTypeNone; } return (light_levels[left_type] > light_levels[right_type]); } EQ::LightSource_Struct::LightSource_Struct() { Clear(); } void EQ::LightSource_Struct::Clear() { memset(&Slot, 0, (sizeof(uint8) * lightsource::LightCount)); } void EQ::LightSourceProfile::Clear() { Type.Clear(); Level.Clear(); }