Scripts: Fix ambiguous base class (#1216)

This commit is contained in:
David Markowitz 2023-10-09 13:31:25 -07:00 committed by GitHub
parent 094797881b
commit 500ae4d6e5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 17 additions and 33 deletions

View File

@ -1,7 +1,7 @@
#pragma once #pragma once
#include "CppScripts.h" #include "CppScripts.h"
class BaseEnemyApe : public CppScripts::Script { class BaseEnemyApe : virtual public CppScripts::Script {
public: public:
void OnStartup(Entity* self) override; void OnStartup(Entity* self) override;
void OnDie(Entity* self, Entity* killer) override; void OnDie(Entity* self, Entity* killer) override;

View File

@ -2,7 +2,7 @@
#include "ActivityManager.h" #include "ActivityManager.h"
#include "ZoneAgProperty.h" #include "ZoneAgProperty.h"
class ZoneAgSpiderQueen : ZoneAgProperty, ActivityManager { class ZoneAgSpiderQueen : public ZoneAgProperty, ActivityManager {
public: public:
void OnStartup(Entity* self) override; void OnStartup(Entity* self) override;
void OnFireEventServerSide(Entity* self, Entity* sender, std::string args, int32_t param1, int32_t param2, void OnFireEventServerSide(Entity* self, Entity* sender, std::string args, int32_t param1, int32_t param2,

View File

@ -17,7 +17,7 @@ static std::map<std::u16string, uint32_t> ElementMissions = {
{u"fire", 1962}, {u"fire", 1962},
}; };
class NjNPCMissionSpinjitzuServer : public CppScripts::Script { class NjNPCMissionSpinjitzuServer : virtual public CppScripts::Script {
public: public:
void OnMissionDialogueOK(Entity* self, Entity* target, int missionID, eMissionState missionState) override; void OnMissionDialogueOK(Entity* self, Entity* target, int missionID, eMissionState missionState) override;
private: private:

View File

@ -8,7 +8,7 @@ struct ActivityTimer {
float_t runTime = 0; float_t runTime = 0;
}; };
class ActivityManager : public CppScripts::Script { class ActivityManager : virtual public CppScripts::Script {
public: public:
static bool IsPlayerInActivity(Entity* self, LWOOBJID playerID); static bool IsPlayerInActivity(Entity* self, LWOOBJID playerID);
static void UpdatePlayer(Entity* self, LWOOBJID playerID, bool remove = false); static void UpdatePlayer(Entity* self, LWOOBJID playerID, bool remove = false);

View File

@ -1,7 +1,7 @@
#pragma once #pragma once
#include "CppScripts.h" #include "CppScripts.h"
class BasePropertyServer : public CppScripts::Script { class BasePropertyServer : virtual public CppScripts::Script {
public: public:
virtual void SetGameVariables(Entity* self); virtual void SetGameVariables(Entity* self);

View File

@ -1,7 +1,7 @@
#pragma once #pragma once
#include "CppScripts.h" #include "CppScripts.h"
class BaseWavesGenericEnemy : public CppScripts::Script { class BaseWavesGenericEnemy : virtual public CppScripts::Script {
public: public:
void OnStartup(Entity* self) override; void OnStartup(Entity* self) override;
void OnDie(Entity* self, Entity* killer) override; void OnDie(Entity* self, Entity* killer) override;

View File

@ -312,22 +312,17 @@
#include "WildNinjaSensei.h" #include "WildNinjaSensei.h"
#include "WildNinjaBricks.h" #include "WildNinjaBricks.h"
//Big bad global bc this is a namespace and not a class: namespace {
InvalidScript* invalidToReturn = new InvalidScript(); InvalidScript* invalidToReturn = new InvalidScript();
std::map<std::string, CppScripts::Script*> m_Scripts; std::map<std::string, CppScripts::Script*> m_Scripts;
};
// yeah sorry darwin ill fix the global later
CppScripts::Script* CppScripts::GetScript(Entity* parent, const std::string& scriptName) { CppScripts::Script* CppScripts::GetScript(Entity* parent, const std::string& scriptName) {
Script* script;
if (m_Scripts.find(scriptName) != m_Scripts.end()) { if (m_Scripts.find(scriptName) != m_Scripts.end()) {
script = m_Scripts[scriptName]; return m_Scripts[scriptName];
return script;
} }
script = invalidToReturn; Script* script = invalidToReturn;
//VE / AG: //VE / AG:
if (scriptName == "scripts\\ai\\AG\\L_AG_SHIP_PLAYER_DEATH_TRIGGER.lua") if (scriptName == "scripts\\ai\\AG\\L_AG_SHIP_PLAYER_DEATH_TRIGGER.lua")
@ -411,7 +406,7 @@ CppScripts::Script* CppScripts::GetScript(Entity* parent, const std::string& scr
else if (scriptName == "scripts\\02_server\\Map\\AG\\L__AG_MONUMENT_RACE_CANCEL.lua") else if (scriptName == "scripts\\02_server\\Map\\AG\\L__AG_MONUMENT_RACE_CANCEL.lua")
script = new AgMonumentRaceCancel(); script = new AgMonumentRaceCancel();
else if (scriptName == "scripts\\02_server\\Map\\AG_Spider_Queen\\L_ZONE_AG_SPIDER_QUEEN.lua") else if (scriptName == "scripts\\02_server\\Map\\AG_Spider_Queen\\L_ZONE_AG_SPIDER_QUEEN.lua")
script = (ZoneAgProperty*)new ZoneAgSpiderQueen(); script = new ZoneAgSpiderQueen();
else if (scriptName == "scripts\\02_server\\Map\\AG_Spider_Queen\\L_SPIDER_BOSS_TREASURE_CHEST_SERVER.lua") else if (scriptName == "scripts\\02_server\\Map\\AG_Spider_Queen\\L_SPIDER_BOSS_TREASURE_CHEST_SERVER.lua")
script = new SpiderBossTreasureChestServer(); script = new SpiderBossTreasureChestServer();
else if (scriptName == "scripts\\02_server\\Map\\AG\\L_NPC_COWBOY_SERVER.lua") else if (scriptName == "scripts\\02_server\\Map\\AG\\L_NPC_COWBOY_SERVER.lua")
@ -475,7 +470,7 @@ CppScripts::Script* CppScripts::GetScript(Entity* parent, const std::string& scr
else if (scriptName == "scripts\\02_server\\Enemy\\Waves\\L_WAVES_BOSS_HAMMERLING_ENEMY_SERVER.lua") else if (scriptName == "scripts\\02_server\\Enemy\\Waves\\L_WAVES_BOSS_HAMMERLING_ENEMY_SERVER.lua")
script = new WaveBossHammerling(); script = new WaveBossHammerling();
else if (scriptName == "scripts\\02_server\\Enemy\\Waves\\L_WAVES_BOSS_APE_ENEMY_SERVER.lua") else if (scriptName == "scripts\\02_server\\Enemy\\Waves\\L_WAVES_BOSS_APE_ENEMY_SERVER.lua")
script = (BaseEnemyApe*) new WaveBossApe(); script = new WaveBossApe();
else if (scriptName == "scripts\\02_server\\Enemy\\Waves\\L_WAVES_BOSS_DARK_SPIDERLING_ENEMY_SERVER.lua") else if (scriptName == "scripts\\02_server\\Enemy\\Waves\\L_WAVES_BOSS_DARK_SPIDERLING_ENEMY_SERVER.lua")
script = new WaveBossSpiderling(); script = new WaveBossSpiderling();
else if (scriptName == "scripts\\02_server\\Enemy\\Waves\\L_WAVES_BOSS_HORESEMEN_ENEMY_SERVER.lua") else if (scriptName == "scripts\\02_server\\Enemy\\Waves\\L_WAVES_BOSS_HORESEMEN_ENEMY_SERVER.lua")
@ -636,7 +631,7 @@ CppScripts::Script* CppScripts::GetScript(Entity* parent, const std::string& scr
else if (scriptName == "scripts\\02_server\\Map\\General\\L_PROP_PLATFORM.lua") else if (scriptName == "scripts\\02_server\\Map\\General\\L_PROP_PLATFORM.lua")
script = new PropertyPlatform(); script = new PropertyPlatform();
else if (scriptName == "scripts\\02_server\\Map\\VE\\L_VE_BRICKSAMPLE_SERVER.lua") else if (scriptName == "scripts\\02_server\\Map\\VE\\L_VE_BRICKSAMPLE_SERVER.lua")
return new VeBricksampleServer(); script = new VeBricksampleServer();
else if (scriptName == "scripts\\02_server\\Map\\General\\L_MAIL_BOX_SERVER.lua") else if (scriptName == "scripts\\02_server\\Map\\General\\L_MAIL_BOX_SERVER.lua")
script = new MailBoxServer(); script = new MailBoxServer();
else if (scriptName == "scripts\\ai\\ACT\\L_ACT_MINE.lua") else if (scriptName == "scripts\\ai\\ACT\\L_ACT_MINE.lua")
@ -771,7 +766,7 @@ CppScripts::Script* CppScripts::GetScript(Entity* parent, const std::string& scr
else if (scriptName == "scripts\\02_server\\Map\\njhub\\L_COLE_NPC.lua") else if (scriptName == "scripts\\02_server\\Map\\njhub\\L_COLE_NPC.lua")
script = new NjColeNPC(); script = new NjColeNPC();
else if (scriptName == "scripts\\02_server\\Map\\njhub\\L_JAY_MISSION_ITEMS.lua") else if (scriptName == "scripts\\02_server\\Map\\njhub\\L_JAY_MISSION_ITEMS.lua")
script = (NjNPCMissionSpinjitzuServer*) new NjJayMissionItems(); script = new NjJayMissionItems();
else if (scriptName == "scripts\\02_server\\Map\\njhub\\L_NPC_MISSION_SPINJITZU_SERVER.lua") else if (scriptName == "scripts\\02_server\\Map\\njhub\\L_NPC_MISSION_SPINJITZU_SERVER.lua")
script = new NjNPCMissionSpinjitzuServer(); script = new NjNPCMissionSpinjitzuServer();
else if (scriptName == "scripts\\02_server\\Map\\njhub\\L_ENEMY_SKELETON_SPAWNER.lua") else if (scriptName == "scripts\\02_server\\Map\\njhub\\L_ENEMY_SKELETON_SPAWNER.lua")
@ -952,11 +947,3 @@ std::vector<CppScripts::Script*> CppScripts::GetEntityScripts(Entity* entity) {
} }
return scripts; return scripts;
} }
CppScripts::Script::Script() {
}
CppScripts::Script::~Script() {
}

View File

@ -29,9 +29,6 @@ namespace CppScripts {
*/ */
class Script { class Script {
public: public:
Script();
~Script();
/** /**
* Invoked one frame after the script is loaded. * Invoked one frame after the script is loaded.
* *

View File

@ -10,7 +10,7 @@ struct ItemSetting {
/** /**
* Scripts that allows for the addition and removal of sets of items by an NPC * Scripts that allows for the addition and removal of sets of items by an NPC
*/ */
class NPCAddRemoveItem : public CppScripts::Script { class NPCAddRemoveItem : virtual public CppScripts::Script {
protected: protected:
void OnMissionDialogueOK(Entity* self, Entity* target, int missionID, eMissionState missionState) override; void OnMissionDialogueOK(Entity* self, Entity* target, int missionID, eMissionState missionState) override;
virtual std::map<uint32_t, std::vector<ItemSetting>> GetSettings(); virtual std::map<uint32_t, std::vector<ItemSetting>> GetSettings();