Wenn ein Befehl die ID eines Switches oder einer Variable benötigt,
darf niemals eine nicht existente ID angegeben werden,
es kann zum Absturz des Spiels führen.
...
Hä? Warum das? RPG::variables hat kein Problem mit zu hohen Variablennummern, selbiges gilt für RPG::switches. Es werden einfach mehr Variablen bzw. Switches erzeugt.
Steht afaik auch so in der Dokumentation.
EDIT: Gerade den Code gelesen. Mir sind ein paar Sachen aufgefallen:
1) Warum CUSTOM_DLLMAIN? Das versteh ich nicht. Erstens mal hast du keine eigene DllMain-Funktion, wozu dann? Zweitens hast du das nach dem #include, also hat es sowieso keine Wirkung.
2) using namespace RPG ist zwar vielleicht praktisch, aber das ist nicht umsonst in einem Namespace - nämlich damit man erstens sofort sieht wenn man auf etwas von DynRPG zugreift und zweitens nicht neue Features alten Code zerstören können weil sie zufällig denselben Namen für ein Objekt verwenden wie du für eine Variable.
3) Dein Code wird furchtbar failen wenn es Lücken in den Event-IDs gibt. Ich erkläre dir mal:
Du zählst die Event-IDs von 1 bis zur Anzahl Events. Was passiert jetzt wenn es die Events 1, 3, 4 und 6 auf der Map gibt? Dann zählst nicht 1, 3, 4, 6 sondern 1, 2, 3, 4 und wirst bei "2" crashen weil es das Event nicht gibt.
Ich nehme an, du willst danach nicht events[i] (also i = EventID) sondern events.ptr->list[i] (also i = Index) verwenden, und mit 0 zu zählen beginnen:
Ich sollte das vielleicht mal besser in der Dokumentation erklären, oder vielleicht "list" vom darunterliegenden RPG::NamedCatalog durchreichen sodass man "RPG::events.byIndex(i)" verwenden kann o.ä.
--
Mir war nichtmal bewusst dass ich nominiert wurde, aber: Cool! Hälfte des Lobes muss aber unbedingt an Archeia!