-
Notifications
You must be signed in to change notification settings - Fork 127
Update ZzzOpenData.cpp #191
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Now, when OpenMonsterModel(153) appears, it will be replaced with the monster's actual name from the enum (SPIDER_EGGS_1, ICE_GIANT, etc.), making the logs much easier to read. 🚀
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Summary of Changes
Hello @dracy21, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request primarily focuses on enhancing the readability of application logs by replacing cryptic numeric monster model identifiers with their descriptive names. This change makes debugging and monitoring much more intuitive, alongside some minor code cleanup and formatting improvements.
Highlights
- Improved Logging: Introduced a new helper function,
GetMonsterModelName
, which mapsEMonsterModelType
enum values to their corresponding human-readable wide string names (e.g.,ICE_GIANT
,SPIDER_EGGS_1
). - Log Readability Enhancement: Modified the
OpenMonsterModel
function to utilize the newGetMonsterModelName
function. This change ensures that theMuError.log
now displays descriptive monster names instead of raw numeric IDs when a monster model is opened, significantly improving log clarity and debugging. - Code Cleanup: Removed the previously empty and unused
OpenMonsterModels
function, contributing to overall code cleanliness and reducing unnecessary code. - File Formatting: Applied minor formatting adjustments to the file, including the removal of a Byte Order Mark (BOM) and ensuring consistent newline characters at the end of the file.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command>
or @gemini-code-assist <command>
. Below is a summary of the supported commands.
Feature | Command | Description |
---|---|---|
Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/
folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
The pull request updates the logging of monster model types in OpenMonsterModel
to use the actual monster name instead of the enum value. This improves the readability of the logs. The code introduces a new function GetMonsterModelName
to map the enum to a string representation.
const wchar_t* GetMonsterModelName(EMonsterModelType Type) { | ||
switch (Type) { | ||
case MONSTER_MODEL_ICE_GIANT: return L"ICE_GIANT"; | ||
case MONSTER_MODEL_BUDGE_DRAGON: return L"BUDGE_DRAGON"; | ||
case MONSTER_MODEL_LARVA: return L"LARVA"; | ||
case MONSTER_MODEL_HELL_SPIDER: return L"HELL_SPIDER"; | ||
case MONSTER_MODEL_SPIDER: return L"SPIDER"; | ||
case MONSTER_MODEL_CYCLOPS: return L"CYCLOPS"; | ||
case MONSTER_MODEL_YETI: return L"YETI"; | ||
case MONSTER_MODEL_ELITE_YETI: return L"ELITE_YETI"; | ||
case MONSTER_MODEL_WORM: return L"WORM"; | ||
case MONSTER_MODEL_GOBLIN: return L"GOBLIN"; | ||
case MONSTER_MODEL_CHAIN_SCORPION: return L"CHAIN_SCORPION"; | ||
case MONSTER_MODEL_BEETLE_MONSTER: return L"BEETLE_MONSTER"; | ||
case MONSTER_MODEL_SHADOW: return L"SHADOW"; | ||
case MONSTER_MODEL_TITAN: return L"TITAN"; | ||
case MONSTER_MODEL_GOLDEN_WHEEL: return L"GOLDEN_WHEEL"; | ||
case MONSTER_MODEL_TANTALLOS: return L"TANTALLOS"; | ||
case MONSTER_MODEL_BEAM_KNIGHT: return L"BEAM_KNIGHT"; | ||
case MONSTER_MODEL_DEATH_ANGEL: return L"DEATH_ANGEL"; | ||
case MONSTER_MODEL_ILLUSION_OF_KUNDUN: return L"ILLUSION_OF_KUNDUN"; | ||
case MONSTER_MODEL_AEGIS: return L"AEGIS"; | ||
case MONSTER_MODEL_DEATH_CENTURION: return L"DEATH_CENTURION"; | ||
case MONSTER_MODEL_SHRIKER: return L"SHRIKER"; | ||
case MONSTER_MODEL_CHAOSCASTLE_KNIGHT: return L"CHAOSCASTLE_KNIGHT"; | ||
case MONSTER_MODEL_CHAOSCASTLE_ELF: return L"CHAOSCASTLE_ELF"; | ||
case MONSTER_MODEL_CHAOSCASTLE_WIZARD: return L"CHAOSCASTLE_WIZARD"; | ||
case MONSTER_MODEL_BALGASS: return L"BALGASS"; | ||
case MONSTER_MODEL_SORAM: return L"SORAM"; | ||
case MONSTER_MODEL_DARK_ELF_1: return L"DARK_ELF_1"; | ||
case MONSTER_MODEL_BALLISTA: return L"BALLISTA"; | ||
case MONSTER_MODEL_WITCH_QUEEN: return L"WITCH_QUEEN"; | ||
case MONSTER_MODEL_GOLDEN_STONE_GOLEM: return L"GOLDEN_STONE_GOLEM"; | ||
case MONSTER_MODEL_DEATH_RIDER: return L"DEATH_RIDER"; | ||
case MONSTER_MODEL_DEATH_TREE: return L"DEATH_TREE"; | ||
case MONSTER_MODEL_HELL_MAINE: return L"HELL_MAINE"; | ||
case MONSTER_MODEL_BERSERK: return L"BERSERK"; | ||
case MONSTER_MODEL_SPLINTER_WOLF: return L"SPLINTER_WOLF"; | ||
case MONSTER_MODEL_IRON_RIDER: return L"IRON_RIDER"; | ||
case MONSTER_MODEL_SATYROS: return L"SATYROS"; | ||
case MONSTER_MODEL_BLADE_HUNTER: return L"BLADE_HUNTER"; | ||
case MONSTER_MODEL_KENTAUROS: return L"KENTAUROS"; | ||
case MONSTER_MODEL_GIGANTIS: return L"GIGANTIS"; | ||
case MONSTER_MODEL_GENOCIDER: return L"GENOCIDER"; | ||
case MONSTER_MODEL_PERSONA: return L"PERSONA"; | ||
case MONSTER_MODEL_TWIN_TAIL: return L"TWIN_TAIL"; | ||
case MONSTER_MODEL_DREADFEAR: return L"DREADFEAR"; | ||
case MONSTER_MODEL_DARK_SKULL_SOLDIER_5: return L"DARK_SKULL_SOLDIER_5"; | ||
case MONSTER_MODEL_MAYA_HAND_LEFT: return L"MAYA_HAND_LEFT"; | ||
case MONSTER_MODEL_MAYA_HAND_RIGHT: return L"MAYA_HAND_RIGHT"; | ||
case MONSTER_MODEL_MAYA: return L"MAYA"; | ||
case MONSTER_MODEL_POUCH_OF_BLESSING: return L"POUCH_OF_BLESSING"; | ||
case MONSTER_MODEL_LUNAR_RABBIT: return L"LUNAR_RABBIT"; | ||
case MONSTER_MODEL_FIRE_FLAME_GHOST: return L"FIRE_FLAME_GHOST"; | ||
case MONSTER_MODEL_ZOMBIE_FIGHTER: return L"ZOMBIE_FIGHTER"; | ||
case MONSTER_MODEL_GLADIATOR: return L"GLADIATOR"; | ||
case MONSTER_MODEL_SLAUGTHERER: return L"SLAUGTHERER"; | ||
case MONSTER_MODEL_BLOOD_ASSASSIN: return L"BLOOD_ASSASSIN"; | ||
case MONSTER_MODEL_CRUEL_BLOOD_ASSASSIN: return L"CRUEL_BLOOD_ASSASSIN"; | ||
case MONSTER_MODEL_LAVA_GIANT: return L"LAVA_GIANT"; | ||
case MONSTER_MODEL_BURNING_LAVA_GIANT: return L"BURNING_LAVA_GIANT"; | ||
case MONSTER_MODEL_RABBIT: return L"RABBIT"; | ||
case MONSTER_MODEL_BUTTERFLY: return L"BUTTERFLY"; | ||
case MONSTER_MODEL_HIDEOUS_RABBIT: return L"HIDEOUS_RABBIT"; | ||
case MONSTER_MODEL_WEREWOLF2: return L"WEREWOLF2"; | ||
case MONSTER_MODEL_CURSED_LICH: return L"CURSED_LICH"; | ||
case MONSTER_MODEL_TOTEM_GOLEM: return L"TOTEM_GOLEM"; | ||
case MONSTER_MODEL_GRIZZLY: return L"GRIZZLY"; | ||
case MONSTER_MODEL_CAPTAIN_GRIZZLY: return L"CAPTAIN_GRIZZLY"; | ||
case MONSTER_MODEL_SAPIUNUS: return L"SAPIUNUS"; | ||
case MONSTER_MODEL_SAPIDUO: return L"SAPIDUO"; | ||
case MONSTER_MODEL_SAPITRES: return L"SAPITRES"; | ||
case MONSTER_MODEL_SHADOW_PAWN: return L"SHADOW_PAWN"; | ||
case MONSTER_MODEL_SHADOW_KNIGHT: return L"SHADOW_KNIGHT"; | ||
case MONSTER_MODEL_SHADOW_LOOK: return L"SHADOW_LOOK"; | ||
case MONSTER_MODEL_NAPIN: return L"NAPIN"; | ||
case MONSTER_MODEL_GHOST_NAPIN: return L"GHOST_NAPIN"; | ||
case MONSTER_MODEL_BLAZE_NAPIN: return L"BLAZE_NAPIN"; | ||
case MONSTER_MODEL_ICE_WALKER: return L"ICE_WALKER"; | ||
case MONSTER_MODEL_GIANT_MAMMOTH: return L"GIANT_MAMMOTH"; | ||
case MONSTER_MODEL_COOLUTIN: return L"COOLUTIN"; | ||
case MONSTER_MODEL_IRON_KNIGHT: return L"IRON_KNIGHT"; | ||
case MONSTER_MODEL_SELUPAN: return L"SELUPAN"; | ||
case MONSTER_MODEL_SPIDER_EGGS_1: return L"SPIDER_EGGS_1"; | ||
case MONSTER_MODEL_SPIDER_EGGS_2: return L"SPIDER_EGGS_2"; | ||
case MONSTER_MODEL_SPIDER_EGGS_3: return L"SPIDER_EGGS_3"; | ||
case MONSTER_MODEL_CURSED_SANTA: return L"CURSED_SANTA"; | ||
case MONSTER_MODEL_GAYION: return L"GAYION"; | ||
case MONSTER_MODEL_JERRY: return L"JERRY"; | ||
case MONSTER_MODEL_RAYMOND: return L"RAYMOND"; | ||
case MONSTER_MODEL_LUCAS: return L"LUCAS"; | ||
case MONSTER_MODEL_FRED: return L"FRED"; | ||
case MONSTER_MODEL_HAMMERIZE: return L"HAMMERIZE"; | ||
case MONSTER_MODEL_DUAL_BERSERKER: return L"DUAL_BERSERKER"; | ||
case MONSTER_MODEL_DEVIL_LORD: return L"DEVIL_LORD"; | ||
case MONSTER_MODEL_QUARTER_MASTER: return L"QUARTER_MASTER"; | ||
case MONSTER_MODEL_COMBAT_INSTRUCTOR: return L"COMBAT_INSTRUCTOR"; | ||
case MONSTER_MODEL_ATICLES_HEAD: return L"ATICLES_HEAD"; | ||
case MONSTER_MODEL_DARK_GHOST: return L"DARK_GHOST"; | ||
case MONSTER_MODEL_BANSHEE: return L"BANSHEE"; | ||
case MONSTER_MODEL_HEAD_MOUNTER: return L"HEAD_MOUNTER"; | ||
case MONSTER_MODEL_DEFENDER: return L"DEFENDER"; | ||
case MONSTER_MODEL_OCELOT: return L"OCELOT"; | ||
case MONSTER_MODEL_ERIC: return L"ERIC"; | ||
case MONSTER_MODEL_MAD_BUTCHER: return L"MAD_BUTCHER"; | ||
case MONSTER_MODEL_TERRIBLE_BUTCHER: return L"TERRIBLE_BUTCHER"; | ||
case MONSTER_MODEL_DOPPELGANGER: return L"DOPPELGANGER"; | ||
case MONSTER_MODEL_MEDUSA: return L"MEDUSA"; | ||
case MONSTER_MODEL_DARK_MAMMOTH: return L"DARK_MAMMOTH"; | ||
case MONSTER_MODEL_DARK_GIANT: return L"DARK_GIANT"; | ||
case MONSTER_MODEL_DARK_COOLUTIN: return L"DARK_COOLUTIN"; | ||
case MONSTER_MODEL_DARK_IRON_KNIGHT: return L"DARK_IRON_KNIGHT"; | ||
case MONSTER_MODEL_BLOODY_ORC: return L"BLOODY_ORC"; | ||
case MONSTER_MODEL_BLOODY_DEATH_RIDER: return L"BLOODY_DEATH_RIDER"; | ||
case MONSTER_MODEL_BLOODY_GOLEM: return L"BLOODY_GOLEM"; | ||
case MONSTER_MODEL_BLOODY_WITCH_QUEEN: return L"BLOODY_WITCH_QUEEN"; | ||
case MONSTER_MODEL_SAPI_QUEEN: return L"SAPI_QUEEN"; | ||
case MONSTER_MODEL_ICE_NAPIN: return L"ICE_NAPIN"; | ||
case MONSTER_MODEL_SHADOW_MASTER: return L"SHADOW_MASTER"; | ||
case MONSTER_MODEL_BERSERKER_WARRIOR: return L"BERSERKER_WARRIOR"; | ||
case MONSTER_MODEL_KENTAUROS_WARRIOR: return L"KENTAUROS_WARRIOR"; | ||
case MONSTER_MODEL_GIGANTIS_WARRIOR: return L"GIGANTIS_WARRIOR"; | ||
case MONSTER_MODEL_SOCCERBALL: return L"SOCCERBALL"; | ||
case MONSTER_MODEL_VENOMOUS_CHAIN_SCORPION: return L"VENOMOUS_CHAIN_SCORPION"; | ||
case MONSTER_MODEL_BONE_SCORPION: return L"BONE_SCORPION"; | ||
case MONSTER_MODEL_ORCUS: return L"ORCUS"; | ||
case MONSTER_MODEL_GOLLOCK: return L"GOLLOCK"; | ||
case MONSTER_MODEL_CRYPTA: return L"CRYPTA"; | ||
case MONSTER_MODEL_CRYPOS: return L"CRYPOS"; | ||
case MONSTER_MODEL_CONDRA: return L"CONDRA"; | ||
case MONSTER_MODEL_NACONDRA: return L"NACONDRA"; | ||
default: return L"UNKNOWN"; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This function has a very long switch statement. Consider using a std::map
or std::unordered_map
to map EMonsterModelType
to the corresponding wchar_t*
. This would improve readability and maintainability, especially as the number of monster types grows. Also, consider using constexpr
if the compiler supports it.
const wchar_t* GetMonsterModelName(EMonsterModelType Type) {
static const std::unordered_map<EMonsterModelType, const wchar_t*> monsterNames = {
{MONSTER_MODEL_ICE_GIANT, L"ICE_GIANT"},
{MONSTER_MODEL_BUDGE_DRAGON, L"BUDGE_DRAGON"},
{MONSTER_MODEL_LARVA, L"LARVA"},
{MONSTER_MODEL_HELL_SPIDER, L"HELL_SPIDER"},
{MONSTER_MODEL_SPIDER, L"SPIDER"},
{MONSTER_MODEL_CYCLOPS, L"CYCLOPS"},
{MONSTER_MODEL_YETI, L"YETI"},
{MONSTER_MODEL_ELITE_YETI, L"ELITE_YETI"},
{MONSTER_MODEL_WORM, L"WORM"},
{MONSTER_MODEL_GOBLIN, L"GOBLIN"},
{MONSTER_MODEL_CHAIN_SCORPION, L"CHAIN_SCORPION"},
{MONSTER_MODEL_BEETLE_MONSTER, L"BEETLE_MONSTER"},
{MONSTER_MODEL_SHADOW, L"SHADOW"},
{MONSTER_MODEL_TITAN, L"TITAN"},
{MONSTER_MODEL_GOLDEN_WHEEL, L"GOLDEN_WHEEL"},
{MONSTER_MODEL_TANTALLOS, L"TANTALLOS"},
{MONSTER_MODEL_BEAM_KNIGHT, L"BEAM_KNIGHT"},
{MONSTER_MODEL_DEATH_ANGEL, L"DEATH_ANGEL"},
{MONSTER_MODEL_ILLUSION_OF_KUNDUN, L"ILLUSION_OF_KUNDUN"},
{MONSTER_MODEL_AEGIS, L"AEGIS"},
{MONSTER_MODEL_DEATH_CENTURION, L"DEATH_CENTURION"},
{MONSTER_MODEL_SHRIKER, L"SHRIKER"},
{MONSTER_MODEL_CHAOSCASTLE_KNIGHT, L"CHAOSCASTLE_KNIGHT"},
{MONSTER_MODEL_CHAOSCASTLE_ELF, L"CHAOSCASTLE_ELF"},
{MONSTER_MODEL_CHAOSCASTLE_WIZARD, L"CHAOSCASTLE_WIZARD"},
{MONSTER_MODEL_BALGASS, L"BALGASS"},
{MONSTER_MODEL_SORAM, L"SORAM"},
{MONSTER_MODEL_DARK_ELF_1, L"DARK_ELF_1"},
{MONSTER_MODEL_BALLISTA, L"BALLISTA"},
{MONSTER_MODEL_WITCH_QUEEN, L"WITCH_QUEEN"},
{MONSTER_MODEL_GOLDEN_STONE_GOLEM, L"GOLDEN_STONE_GOLEM"},
{MONSTER_MODEL_DEATH_RIDER, L"DEATH_RIDER"},
{MONSTER_MODEL_DEATH_TREE, L"DEATH_TREE"},
{MONSTER_MODEL_HELL_MAINE, L"HELL_MAINE"},
{MONSTER_MODEL_BERSERK, L"BERSERK"},
{MONSTER_MODEL_SPLINTER_WOLF, L"SPLINTER_WOLF"},
{MONSTER_MODEL_IRON_RIDER, L"IRON_RIDER"},
{MONSTER_MODEL_SATYROS, L"SATYROS"},
{MONSTER_MODEL_BLADE_HUNTER, L"BLADE_HUNTER"},
{MONSTER_MODEL_KENTAUROS, L"KENTAUROS"},
{MONSTER_MODEL_GIGANTIS, L"GIGANTIS"},
{MONSTER_MODEL_GENOCIDER, L"GENOCIDER"},
{MONSTER_MODEL_PERSONA, L"PERSONA"},
{MONSTER_MODEL_TWIN_TAIL, L"TWIN_TAIL"},
{MONSTER_MODEL_DREADFEAR, L"DREADFEAR"},
{MONSTER_MODEL_DARK_SKULL_SOLDIER_5, L"DARK_SKULL_SOLDIER_5"},
{MONSTER_MODEL_MAYA_HAND_LEFT, L"MAYA_HAND_LEFT"},
{MONSTER_MODEL_MAYA_HAND_RIGHT, L"MAYA_HAND_RIGHT"},
{MONSTER_MODEL_MAYA, L"MAYA"},
{MONSTER_MODEL_POUCH_OF_BLESSING, L"POUCH_OF_BLESSING"},
{MONSTER_MODEL_LUNAR_RABBIT, L"LUNAR_RABBIT"},
{MONSTER_MODEL_FIRE_FLAME_GHOST, L"FIRE_FLAME_GHOST"},
{MONSTER_MODEL_ZOMBIE_FIGHTER, L"ZOMBIE_FIGHTER"},
{MONSTER_MODEL_GLADIATOR, L"GLADIATOR"},
{MONSTER_MODEL_SLAUGTHERER, L"SLAUGTHERER"},
{MONSTER_MODEL_BLOOD_ASSASSIN, L"BLOOD_ASSASSIN"},
{MONSTER_MODEL_CRUEL_BLOOD_ASSASSIN, L"CRUEL_BLOOD_ASSASSIN"},
{MONSTER_MODEL_LAVA_GIANT, L"LAVA_GIANT"},
{MONSTER_MODEL_BURNING_LAVA_GIANT, L"BURNING_LAVA_GIANT"},
{MONSTER_MODEL_RABBIT, L"RABBIT"},
{MONSTER_MODEL_BUTTERFLY, L"BUTTERFLY"},
{MONSTER_MODEL_HIDEOUS_RABBIT, L"HIDEOUS_RABBIT"},
{MONSTER_MODEL_WEREWOLF2, L"WEREWOLF2"},
{MONSTER_MODEL_CURSED_LICH, L"CURSED_LICH"},
{MONSTER_MODEL_TOTEM_GOLEM, L"TOTEM_GOLEM"},
{MONSTER_MODEL_GRIZZLY, L"GRIZZLY"},
{MONSTER_MODEL_CAPTAIN_GRIZZLY, L"CAPTAIN_GRIZZLY"},
{MONSTER_MODEL_SAPIUNUS, L"SAPIUNUS"},
{MONSTER_MODEL_SAPIDUO, L"SAPIDUO"},
{MONSTER_MODEL_SAPITRES, L"SAPITRES"},
{MONSTER_MODEL_SHADOW_PAWN, L"SHADOW_PAWN"},
{MONSTER_MODEL_SHADOW_KNIGHT, L"SHADOW_KNIGHT"},
{MONSTER_MODEL_SHADOW_LOOK, L"SHADOW_LOOK"},
{MONSTER_MODEL_NAPIN, L"NAPIN"},
{MONSTER_MODEL_GHOST_NAPIN, L"GHOST_NAPIN"},
{MONSTER_MODEL_BLAZE_NAPIN, L"BLAZE_NAPIN"},
{MONSTER_MODEL_ICE_WALKER, L"ICE_WALKER"},
{MONSTER_MODEL_GIANT_MAMMOTH, L"GIANT_MAMMOTH"},
{MONSTER_MODEL_COOLUTIN, L"COOLUTIN"},
{MONSTER_MODEL_IRON_KNIGHT, L"IRON_KNIGHT"},
{MONSTER_MODEL_SELUPAN, L"SELUPAN"},
{MONSTER_MODEL_SPIDER_EGGS_1, L"SPIDER_EGGS_1"},
{MONSTER_MODEL_SPIDER_EGGS_2, L"SPIDER_EGGS_2"},
{MONSTER_MODEL_SPIDER_EGGS_3, L"SPIDER_EGGS_3"},
{MONSTER_MODEL_CURSED_SANTA, L"CURSED_SANTA"},
{MONSTER_MODEL_GAYION, L"GAYION"},
{MONSTER_MODEL_JERRY, L"JERRY"},
{MONSTER_MODEL_RAYMOND, L"RAYMOND"},
{MONSTER_MODEL_LUCAS, L"LUCAS"},
{MONSTER_MODEL_FRED, L"FRED"},
{MONSTER_MODEL_HAMMERIZE, L"HAMMERIZE"},
{MONSTER_MODEL_DUAL_BERSERKER, L"DUAL_BERSERKER"},
{MONSTER_MODEL_DEVIL_LORD, L"DEVIL_LORD"},
{MONSTER_MODEL_QUARTER_MASTER, L"QUARTER_MASTER"},
{MONSTER_MODEL_COMBAT_INSTRUCTOR, L"COMBAT_INSTRUCTOR"},
{MONSTER_MODEL_ATICLES_HEAD, L"ATICLES_HEAD"},
{MONSTER_MODEL_DARK_GHOST, L"DARK_GHOST"},
{MONSTER_MODEL_BANSHEE, L"BANSHEE"},
{MONSTER_MODEL_HEAD_MOUNTER, L"HEAD_MOUNTER"},
{MONSTER_MODEL_DEFENDER, L"DEFENDER"},
{MONSTER_MODEL_OCELOT, L"OCELOT"},
{MONSTER_MODEL_ERIC, L"ERIC"},
{MONSTER_MODEL_MAD_BUTCHER, L"MAD_BUTCHER"},
{MONSTER_MODEL_TERRIBLE_BUTCHER, L"TERRIBLE_BUTCHER"},
{MONSTER_MODEL_DOPPELGANGER, L"DOPPELGANGER"},
{MONSTER_MODEL_MEDUSA, L"MEDUSA"},
{MONSTER_MODEL_DARK_MAMMOTH, L"DARK_MAMMOTH"},
{MONSTER_MODEL_DARK_GIANT, L"DARK_GIANT"},
{MONSTER_MODEL_DARK_COOLUTIN, L"DARK_COOLUTIN"},
{MONSTER_MODEL_DARK_IRON_KNIGHT, L"DARK_IRON_KNIGHT"},
{MONSTER_MODEL_BLOODY_ORC, L"BLOODY_ORC"},
{MONSTER_MODEL_BLOODY_DEATH_RIDER, L"BLOODY_DEATH_RIDER"},
{MONSTER_MODEL_BLOODY_GOLEM, L"BLOODY_GOLEM"},
{MONSTER_MODEL_BLOODY_WITCH_QUEEN, L"BLOODY_WITCH_QUEEN"},
{MONSTER_MODEL_SAPI_QUEEN, L"SAPI_QUEEN"},
{MONSTER_MODEL_ICE_NAPIN, L"ICE_NAPIN"},
{MONSTER_MODEL_SHADOW_MASTER, L"SHADOW_MASTER"},
{MONSTER_MODEL_BERSERKER_WARRIOR, L"BERSERKER_WARRIOR"},
{MONSTER_MODEL_KENTAUROS_WARRIOR, L"KENTAUROS_WARRIOR"},
{MONSTER_MODEL_GIGANTIS_WARRIOR, L"GIGANTIS_WARRIOR"},
{MONSTER_MODEL_SOCCERBALL, L"SOCCERBALL"},
{MONSTER_MODEL_VENOMOUS_CHAIN_SCORPION, L"VENOMOUS_CHAIN_SCORPION"},
{MONSTER_MODEL_BONE_SCORPION, L"BONE_SCORPION"},
{MONSTER_MODEL_ORCUS, L"ORCUS"},
{MONSTER_MODEL_GOLLOCK, L"GOLLOCK"},
{MONSTER_MODEL_CRYPTA, L"CRYPTA"},
{MONSTER_MODEL_CRYPOS, L"CRYPOS"},
{MONSTER_MODEL_CONDRA, L"CONDRA"},
{MONSTER_MODEL_NACONDRA, L"NACONDRA"}
};
auto it = monsterNames.find(Type);
if (it != monsterNames.end()) {
return it->second;
} else {
return L"UNKNOWN";
}
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi, thanks, that's a good idea. However, it has two points for improvement IMHO:
- It's incomplete, not all model names are mapped.
- Instead "UNKNOWN", we could still print out the
Type
value.
And just a hint... It's hard to extend - if someone wants to add new models, he'd have to think of this place, too. However, this main source is full of suboptimal stuff, so this doesn't matter anyway 😅
Yeah, I know what you mean — it was annoying that you couldn’t understand anything.
Yeah, I know what you mean — it was annoying that you couldn’t understand anything. |
Btw, I hope you didn't type that all by hand, because with Regex it's done in a minute 😅 |
Now, when OpenMonsterModel(153) appears, in MuError.log it will be replaced with the monster's actual name from the enum (SPIDER_EGGS_1, ICE_GIANT, etc.), making the logs much easier to read. 🚀
default: return L"UNKNOWN";