mirror of
https://github.com/glest/glest-source.git
synced 2025-02-24 11:42:31 +01:00
1101 lines
23 KiB
C++
1101 lines
23 KiB
C++
// ==============================================================
|
|
// This file is part of Glest (www.glest.org)
|
|
//
|
|
// Copyright (C) 2001-2005 Martio Figueroa
|
|
//
|
|
// You can redistribute this code and/or modify it under
|
|
// the terms of the GNU General Public License as published
|
|
// by the Free Software Foundation; either version 2 of the
|
|
// License, or (at your option) any later version
|
|
// ==============================================================
|
|
|
|
#ifndef _GLEST_GAME_SCRIPT_MANAGER_H_
|
|
# define _GLEST_GAME_SCRIPT_MANAGER_H_
|
|
|
|
# ifdef WIN32
|
|
# include <winsock2.h>
|
|
# include <winsock.h>
|
|
# endif
|
|
|
|
# include <string>
|
|
# include <list>
|
|
# include "lua_script.h"
|
|
# include "components.h"
|
|
# include "game_constants.h"
|
|
# include <map>
|
|
# include "xml_parser.h"
|
|
# include "randomgen.h"
|
|
# include "leak_dumper.h"
|
|
# include "platform_util.h"
|
|
|
|
using
|
|
std::string;
|
|
using
|
|
std::list;
|
|
using
|
|
Shared::Graphics::Vec2i;
|
|
using
|
|
Shared::Lua::LuaScript;
|
|
using
|
|
Shared::Lua::LuaHandle;
|
|
using
|
|
Shared::Xml::XmlNode;
|
|
using
|
|
Shared::Util::RandomGen;
|
|
|
|
|
|
namespace
|
|
Glest {
|
|
namespace
|
|
Game {
|
|
|
|
class
|
|
World;
|
|
class
|
|
Unit;
|
|
class
|
|
GameCamera;
|
|
|
|
// =====================================================
|
|
// class ScriptManagerMessage
|
|
// =====================================================
|
|
|
|
class
|
|
ScriptManagerMessage {
|
|
private:
|
|
string
|
|
text;
|
|
string
|
|
header;
|
|
int
|
|
factionIndex;
|
|
int
|
|
teamIndex;
|
|
bool
|
|
messageNotTranslated;
|
|
|
|
public:
|
|
ScriptManagerMessage();
|
|
ScriptManagerMessage(const string & text, const string & header,
|
|
int factionIndex = -1, int teamIndex =
|
|
-1, bool messageNotTranslated = false);
|
|
const
|
|
string &
|
|
getText() const {
|
|
return
|
|
text;
|
|
}
|
|
const
|
|
string &
|
|
getHeader() const {
|
|
return
|
|
header;
|
|
}
|
|
int
|
|
getFactionIndex() const {
|
|
return
|
|
factionIndex;
|
|
}
|
|
int
|
|
getTeamIndex() const {
|
|
return
|
|
teamIndex;
|
|
}
|
|
bool
|
|
getMessageNotTranslated() const {
|
|
return
|
|
messageNotTranslated;
|
|
}
|
|
|
|
void
|
|
saveGame(XmlNode * rootNode);
|
|
void
|
|
loadGame(const XmlNode * rootNode);
|
|
};
|
|
|
|
class
|
|
PlayerModifiers {
|
|
public:
|
|
PlayerModifiers();
|
|
|
|
void
|
|
disableAi() {
|
|
aiEnabled = false;
|
|
}
|
|
void
|
|
enableAi() {
|
|
aiEnabled = true;
|
|
}
|
|
|
|
void
|
|
setAsWinner() {
|
|
winner = true;
|
|
}
|
|
|
|
void
|
|
disableConsume() {
|
|
consumeEnabled = false;
|
|
}
|
|
void
|
|
enableConsume() {
|
|
consumeEnabled = true;
|
|
}
|
|
|
|
bool
|
|
getWinner() const {
|
|
return
|
|
winner;
|
|
}
|
|
|
|
bool
|
|
getAiEnabled() const {
|
|
return
|
|
aiEnabled;
|
|
}
|
|
bool
|
|
getConsumeEnabled() const {
|
|
return
|
|
consumeEnabled;
|
|
}
|
|
|
|
void
|
|
saveGame(XmlNode * rootNode);
|
|
void
|
|
loadGame(const XmlNode * rootNode);
|
|
|
|
private:
|
|
|
|
bool winner;
|
|
bool
|
|
aiEnabled;
|
|
bool
|
|
consumeEnabled;
|
|
};
|
|
|
|
// =====================================================
|
|
// class ScriptManager
|
|
// =====================================================
|
|
|
|
enum UnitTriggerEventType {
|
|
utet_None = 0,
|
|
utet_HPChanged = 1,
|
|
utet_EPChanged,
|
|
utet_LevelChanged,
|
|
utet_FieldChanged,
|
|
utet_SkillChanged
|
|
};
|
|
|
|
enum CellTriggerEventType {
|
|
ctet_Unit,
|
|
ctet_UnitPos,
|
|
ctet_Faction,
|
|
ctet_FactionPos,
|
|
ctet_UnitAreaPos,
|
|
ctet_FactionAreaPos,
|
|
ctet_AreaPos
|
|
};
|
|
|
|
class
|
|
CellTriggerEvent {
|
|
public:
|
|
CellTriggerEvent();
|
|
CellTriggerEventType
|
|
type;
|
|
int
|
|
sourceId;
|
|
int
|
|
destId;
|
|
Vec2i
|
|
destPos;
|
|
Vec2i
|
|
destPosEnd;
|
|
|
|
int
|
|
triggerCount;
|
|
|
|
std::map < int,
|
|
string >
|
|
eventStateInfo;
|
|
|
|
std::map < int,
|
|
std::map <
|
|
Vec2i,
|
|
bool > >
|
|
eventLookupCache;
|
|
|
|
void
|
|
saveGame(XmlNode * rootNode);
|
|
void
|
|
loadGame(const XmlNode * rootNode);
|
|
};
|
|
|
|
class
|
|
TimerTriggerEvent {
|
|
public:
|
|
TimerTriggerEvent();
|
|
bool
|
|
running;
|
|
//time_t startTime;
|
|
//time_t endTime;
|
|
int
|
|
startFrame;
|
|
int
|
|
endFrame;
|
|
|
|
int
|
|
triggerSecondsElapsed;
|
|
|
|
void
|
|
saveGame(XmlNode * rootNode);
|
|
void
|
|
loadGame(const XmlNode * rootNode);
|
|
};
|
|
|
|
class
|
|
ScriptManager {
|
|
private:
|
|
typedef
|
|
list <
|
|
ScriptManagerMessage >
|
|
MessageQueue;
|
|
|
|
private:
|
|
|
|
//lua
|
|
string
|
|
code;
|
|
LuaScript
|
|
luaScript;
|
|
|
|
//world
|
|
World *
|
|
world;
|
|
GameCamera *
|
|
gameCamera;
|
|
|
|
//misc
|
|
MessageQueue
|
|
messageQueue;
|
|
GraphicMessageBox
|
|
messageBox;
|
|
string
|
|
displayText;
|
|
int
|
|
errorCount;
|
|
|
|
//last created unit
|
|
string
|
|
lastCreatedUnitName;
|
|
int
|
|
lastCreatedUnitId;
|
|
|
|
//last dead unit
|
|
string
|
|
lastDeadUnitName;
|
|
int
|
|
lastDeadUnitId;
|
|
int
|
|
lastDeadUnitCauseOfDeath;
|
|
|
|
//last dead unit's killer
|
|
string
|
|
lastDeadUnitKillerName;
|
|
int
|
|
lastDeadUnitKillerId;
|
|
|
|
//last attacked unit
|
|
string
|
|
lastAttackedUnitName;
|
|
int
|
|
lastAttackedUnitId;
|
|
|
|
//last attacking unit
|
|
string
|
|
lastAttackingUnitName;
|
|
int
|
|
lastAttackingUnitId;
|
|
|
|
// end game state
|
|
bool
|
|
gameOver;
|
|
bool
|
|
gameWon;
|
|
PlayerModifiers
|
|
playerModifiers[GameConstants::maxPlayers];
|
|
|
|
int
|
|
currentTimerTriggeredEventId;
|
|
int
|
|
currentCellTriggeredEventId;
|
|
int
|
|
currentCellTriggeredEventUnitId;
|
|
|
|
int
|
|
currentCellTriggeredEventAreaEntryUnitId;
|
|
int
|
|
currentCellTriggeredEventAreaExitUnitId;
|
|
|
|
int
|
|
currentEventId;
|
|
std::map < int,
|
|
CellTriggerEvent >
|
|
CellTriggerEventList;
|
|
std::map < int,
|
|
TimerTriggerEvent >
|
|
TimerTriggerEventList;
|
|
bool
|
|
inCellTriggerEvent;
|
|
std::vector < int >
|
|
unRegisterCellTriggerEventList;
|
|
|
|
bool
|
|
registeredDayNightEvent;
|
|
int
|
|
lastDayNightTriggerStatus;
|
|
|
|
std::map < int,
|
|
UnitTriggerEventType >
|
|
UnitTriggerEventList;
|
|
int
|
|
lastUnitTriggerEventUnitId;
|
|
UnitTriggerEventType
|
|
lastUnitTriggerEventType;
|
|
|
|
RandomGen
|
|
random;
|
|
const XmlNode *
|
|
rootNode;
|
|
|
|
std::map <
|
|
string,
|
|
string >
|
|
luaSavedGameData;
|
|
|
|
private:
|
|
static ScriptManager *
|
|
thisScriptManager;
|
|
|
|
private:
|
|
static const int
|
|
messageWrapCount;
|
|
static const int
|
|
displayTextWrapCount;
|
|
|
|
public:
|
|
|
|
ScriptManager();
|
|
~
|
|
ScriptManager();
|
|
void
|
|
init(World * world, GameCamera * gameCamera, const XmlNode * rootNode);
|
|
|
|
//message box functions
|
|
void
|
|
addMessageToQueue(ScriptManagerMessage msg);
|
|
bool
|
|
getMessageBoxEnabled() const {
|
|
return !
|
|
messageQueue.
|
|
empty();
|
|
}
|
|
GraphicMessageBox *
|
|
getMessageBox() {
|
|
return &messageBox;
|
|
}
|
|
string
|
|
getDisplayText() const {
|
|
return
|
|
displayText;
|
|
}
|
|
const PlayerModifiers *
|
|
getPlayerModifiers(int factionIndex) const {
|
|
return &
|
|
playerModifiers[factionIndex];
|
|
}
|
|
|
|
//events
|
|
void
|
|
onMessageBoxOk(bool popFront = true);
|
|
void
|
|
onResourceHarvested();
|
|
void
|
|
onUnitCreated(const Unit * unit);
|
|
void
|
|
onUnitDied(const Unit * unit);
|
|
void
|
|
onUnitAttacked(const Unit * unit);
|
|
void
|
|
onUnitAttacking(const Unit * unit);
|
|
void
|
|
onGameOver(bool won);
|
|
|
|
void
|
|
onCellTriggerEvent(Unit * movingUnit);
|
|
void
|
|
onTimerTriggerEvent();
|
|
void
|
|
onDayNightTriggerEvent();
|
|
void
|
|
onUnitTriggerEvent(const Unit * unit, UnitTriggerEventType event);
|
|
|
|
bool
|
|
getGameWon() const;
|
|
bool
|
|
getIsGameOver() const;
|
|
|
|
void
|
|
saveGame(XmlNode * rootNode);
|
|
void
|
|
loadGame(const XmlNode * rootNode);
|
|
|
|
private:
|
|
string wrapString(const string & str, int wrapCount);
|
|
|
|
//wrappers, commands
|
|
void
|
|
networkShowMessageForFaction(const string & text,
|
|
const string & header, int factionIndex);
|
|
void
|
|
networkShowMessageForTeam(const string & text, const string & header,
|
|
int teamIndex);
|
|
|
|
void
|
|
networkSetCameraPositionForFaction(int factionIndex,
|
|
const Vec2i & pos);
|
|
void
|
|
networkSetCameraPositionForTeam(int teamIndex, const Vec2i & pos);
|
|
|
|
void
|
|
showMessage(const string & text, const string & header);
|
|
void
|
|
clearDisplayText();
|
|
void
|
|
setDisplayText(const string & text);
|
|
void
|
|
addConsoleText(const string & text);
|
|
string
|
|
translate(const string & text);
|
|
void
|
|
addConsoleLangText(const char *fmt, ...);
|
|
void
|
|
DisplayFormattedText(const char *fmt, ...);
|
|
void
|
|
DisplayFormattedLangText(const char *fmt, ...);
|
|
void
|
|
setCameraPosition(const Vec2i & pos);
|
|
void
|
|
shakeCamera(int shakeIntensity, int shakeDuration,
|
|
bool cameraDistanceAffected, int unitId);
|
|
void
|
|
createUnit(const string & unitName, int factionIndex, Vec2i pos);
|
|
void
|
|
createUnitNoSpacing(const string & unitName, int factionIndex,
|
|
Vec2i pos);
|
|
|
|
void
|
|
setLockedUnitForFaction(const string & unitName, int factionIndex,
|
|
bool lock);
|
|
void
|
|
destroyUnit(int unitId);
|
|
void
|
|
giveKills(int unitId, int amount);
|
|
void
|
|
morphToUnit(int unitId, const string & morphName,
|
|
int ignoreRequirements);
|
|
void
|
|
moveToUnit(int unitId, int destUnitId);
|
|
void
|
|
giveAttackStoppedCommand(int unitId, const string & valueName,
|
|
int ignoreRequirements);
|
|
void
|
|
playStaticSound(const string & playSound);
|
|
void
|
|
playStreamingSound(const string & playSound);
|
|
void
|
|
stopStreamingSound(const string & playSound);
|
|
void
|
|
stopAllSound();
|
|
void
|
|
togglePauseGame(int pauseStatus);
|
|
|
|
void
|
|
playStaticVideo(const string & playVideo);
|
|
void
|
|
playStreamingVideo(const string & playVideo);
|
|
void
|
|
stopStreamingVideo(const string & playVideo);
|
|
void
|
|
stopAllVideo();
|
|
|
|
void
|
|
giveResource(const string & resourceName, int factionIndex,
|
|
int amount);
|
|
void
|
|
givePositionCommand(int unitId, const string & producedName,
|
|
const Vec2i & pos);
|
|
void
|
|
giveProductionCommand(int unitId, const string & producedName);
|
|
void
|
|
giveAttackCommand(int unitId, int unitToAttackId);
|
|
void
|
|
giveUpgradeCommand(int unitId, const string & upgradeName);
|
|
void
|
|
giveStopCommand(int unitId);
|
|
|
|
void
|
|
disableAi(int factionIndex);
|
|
void
|
|
enableAi(int factionIndex);
|
|
void
|
|
disableConsume(int factionIndex);
|
|
void
|
|
enableConsume(int factionIndex);
|
|
|
|
int
|
|
registerCellTriggerEventForUnitToUnit(int sourceUnitId,
|
|
int destUnitId);
|
|
int
|
|
registerCellTriggerEventForUnitToLocation(int sourceUnitId,
|
|
const Vec2i & pos);
|
|
int
|
|
registerCellTriggerEventForFactionToUnit(int sourceFactionId,
|
|
int destUnitId);
|
|
int
|
|
registerCellTriggerEventForFactionToLocation(int sourceFactionId,
|
|
const Vec2i & pos);
|
|
|
|
int
|
|
registerCellAreaTriggerEventForUnitToLocation(int sourceUnitId,
|
|
const Vec4i & pos);
|
|
int
|
|
registerCellAreaTriggerEventForFactionToLocation(int sourceFactionId,
|
|
const Vec4i & pos);
|
|
|
|
int
|
|
registerCellAreaTriggerEvent(const Vec4i & pos);
|
|
|
|
int
|
|
getCellTriggerEventCount(int eventId);
|
|
void
|
|
unregisterCellTriggerEvent(int eventId);
|
|
int
|
|
startTimerEvent();
|
|
int
|
|
startEfficientTimerEvent(int triggerSecondsElapsed);
|
|
int
|
|
resetTimerEvent(int eventId);
|
|
int
|
|
stopTimerEvent(int eventId);
|
|
int
|
|
getTimerEventSecondsElapsed(int eventId);
|
|
|
|
int
|
|
getCellTriggeredEventId();
|
|
int
|
|
getTimerTriggeredEventId();
|
|
|
|
int
|
|
getCellTriggeredEventAreaEntryUnitId();
|
|
int
|
|
getCellTriggeredEventAreaExitUnitId();
|
|
|
|
int
|
|
getCellTriggeredEventUnitId();
|
|
|
|
void
|
|
setRandomGenInit(int seed);
|
|
int
|
|
getRandomGen(int minVal, int maxVal);
|
|
int
|
|
getWorldFrameCount();
|
|
|
|
bool
|
|
getAiEnabled(int factionIndex);
|
|
bool
|
|
getConsumeEnabled(int factionIndex);
|
|
|
|
void
|
|
setPlayerAsWinner(int factionIndex);
|
|
void
|
|
endGame();
|
|
|
|
void
|
|
startPerformanceTimer();
|
|
void
|
|
endPerformanceTimer();
|
|
Vec2i
|
|
getPerformanceTimerResults();
|
|
|
|
//wrappers, queries
|
|
int
|
|
getIsUnitAlive(int unitId);
|
|
Vec2i
|
|
getStartLocation(int factionIndex);
|
|
Vec2i
|
|
getUnitPosition(int unitId);
|
|
int
|
|
getUnitFaction(int unitId);
|
|
const string
|
|
getUnitName(int unitId);
|
|
const string
|
|
getUnitDisplayName(int unitId);
|
|
int
|
|
getResourceAmount(const string & resourceName, int factionIndex);
|
|
const
|
|
string &
|
|
getLastCreatedUnitName();
|
|
int
|
|
getLastCreatedUnitId();
|
|
|
|
void
|
|
setUnitPosition(int unitId, Vec2i pos);
|
|
|
|
void
|
|
addCellMarker(Vec2i pos, int factionIndex, const string & note,
|
|
const string & textureFile);
|
|
void
|
|
removeCellMarker(Vec2i pos, int factionIndex);
|
|
|
|
void
|
|
showMarker(Vec2i pos, int factionIndex, const string & note,
|
|
const string & textureFile, int flashCount);
|
|
|
|
const
|
|
string &
|
|
getLastDeadUnitName();
|
|
int
|
|
getLastDeadUnitId();
|
|
int
|
|
getLastDeadUnitCauseOfDeath();
|
|
const
|
|
string &
|
|
getLastDeadUnitKillerName();
|
|
int
|
|
getLastDeadUnitKillerId();
|
|
|
|
const
|
|
string &
|
|
getLastAttackedUnitName();
|
|
int
|
|
getLastAttackedUnitId();
|
|
|
|
const
|
|
string &
|
|
getLastAttackingUnitName();
|
|
int
|
|
getLastAttackingUnitId();
|
|
|
|
int
|
|
getUnitCount(int factionIndex);
|
|
int
|
|
getUnitCountOfType(int factionIndex, const string & typeName);
|
|
|
|
const string
|
|
getSystemMacroValue(const string & key);
|
|
const string
|
|
getPlayerName(int factionIndex);
|
|
const string
|
|
getFactionName(int factionIndex);
|
|
|
|
vector < int >
|
|
getUnitsForFaction(int factionIndex, const string & commandTypeName,
|
|
int field);
|
|
int
|
|
getUnitCurrentField(int unitId);
|
|
|
|
void
|
|
loadScenario(const string & name, bool keepFactions);
|
|
|
|
int
|
|
isFreeCellsOrHasUnit(int field, int unitId, Vec2i pos);
|
|
int
|
|
isFreeCells(int unitSize, int field, Vec2i pos);
|
|
|
|
int
|
|
getHumanFactionId();
|
|
void
|
|
highlightUnit(int unitId, float radius, float thickness, Vec4f color);
|
|
void
|
|
unhighlightUnit(int unitId);
|
|
|
|
bool
|
|
selectUnit(int unitId);
|
|
bool
|
|
isBuilding(int unitId);
|
|
void
|
|
unselectUnit(int unitId);
|
|
void
|
|
addUnitToGroupSelection(int unitId, int groupIndex);
|
|
void
|
|
recallGroupSelection(int groupIndex);
|
|
void
|
|
removeUnitFromGroupSelection(int unitId, int group);
|
|
void
|
|
setAttackWarningsEnabled(bool enabled);
|
|
bool
|
|
getAttackWarningsEnabled();
|
|
|
|
int
|
|
getIsDayTime();
|
|
int
|
|
getIsNightTime();
|
|
float
|
|
getTimeOfDay();
|
|
void
|
|
registerDayNightEvent();
|
|
void
|
|
unregisterDayNightEvent();
|
|
|
|
void
|
|
registerUnitTriggerEvent(int unitId);
|
|
void
|
|
unregisterUnitTriggerEvent(int unitId);
|
|
int
|
|
getLastUnitTriggerEventUnitId();
|
|
UnitTriggerEventType
|
|
getLastUnitTriggerEventType();
|
|
int
|
|
getUnitProperty(int unitId, UnitTriggerEventType type);
|
|
int
|
|
setUnitProperty(int unitId, UnitTriggerEventType type, int value);
|
|
const string
|
|
getUnitPropertyName(int unitId, UnitTriggerEventType type);
|
|
|
|
void
|
|
disableSpeedChange();
|
|
void
|
|
enableSpeedChange();
|
|
bool
|
|
getSpeedChangeEnabled();
|
|
void
|
|
storeSaveGameData(string name, string value);
|
|
string
|
|
loadSaveGameData(string name);
|
|
|
|
ControlType
|
|
getFactionPlayerType(int factionIndex);
|
|
// -----------------------------------------------------------------------
|
|
|
|
static void
|
|
error(LuaHandle * luaHandle, const megaglest_runtime_error * mgErr,
|
|
const char *file, const char *function, int line);
|
|
|
|
//callbacks, commands
|
|
static int
|
|
networkShowMessageForFaction(LuaHandle * luaHandle);
|
|
static int
|
|
networkShowMessageForTeam(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
networkSetCameraPositionForFaction(LuaHandle * luaHandle);
|
|
static int
|
|
networkSetCameraPositionForTeam(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
showMessage(LuaHandle * luaHandle);
|
|
static int
|
|
setDisplayText(LuaHandle * luaHandle);
|
|
static int
|
|
addConsoleText(LuaHandle * luaHandle);
|
|
static int
|
|
translate(LuaHandle * luaHandle);
|
|
static int
|
|
addConsoleLangText(LuaHandle * luaHandle);
|
|
static int
|
|
DisplayFormattedText(LuaHandle * luaHandle);
|
|
static int
|
|
DisplayFormattedLangText(LuaHandle * luaHandle);
|
|
static int
|
|
clearDisplayText(LuaHandle * luaHandle);
|
|
static int
|
|
setCameraPosition(LuaHandle * luaHandle);
|
|
static int
|
|
shakeCamera(LuaHandle * luaHandle);
|
|
static int
|
|
shakeCameraOnUnit(LuaHandle * luaHandle);
|
|
static int
|
|
createUnit(LuaHandle * luaHandle);
|
|
static int
|
|
createUnitNoSpacing(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
setLockedUnitForFaction(LuaHandle * luaHandle);
|
|
static int
|
|
destroyUnit(LuaHandle * luaHandle);
|
|
static int
|
|
giveKills(LuaHandle * luaHandle);
|
|
static int
|
|
morphToUnit(LuaHandle * luaHandle);
|
|
static int
|
|
moveToUnit(LuaHandle * luaHandle);
|
|
static int
|
|
giveAttackStoppedCommand(LuaHandle * luaHandle);
|
|
static int
|
|
playStaticSound(LuaHandle * luaHandle);
|
|
static int
|
|
playStreamingSound(LuaHandle * luaHandle);
|
|
static int
|
|
stopStreamingSound(LuaHandle * luaHandle);
|
|
static int
|
|
stopAllSound(LuaHandle * luaHandle);
|
|
static int
|
|
togglePauseGame(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
playStaticVideo(LuaHandle * luaHandle);
|
|
static int
|
|
playStreamingVideo(LuaHandle * luaHandle);
|
|
static int
|
|
stopStreamingVideo(LuaHandle * luaHandle);
|
|
static int
|
|
stopAllVideo(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
giveResource(LuaHandle * luaHandle);
|
|
static int
|
|
givePositionCommand(LuaHandle * luaHandle);
|
|
static int
|
|
giveProductionCommand(LuaHandle * luaHandle);
|
|
static int
|
|
giveAttackCommand(LuaHandle * luaHandle);
|
|
static int
|
|
giveUpgradeCommand(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
disableAi(LuaHandle * luaHandle);
|
|
static int
|
|
enableAi(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
disableConsume(LuaHandle * luaHandle);
|
|
static int
|
|
enableConsume(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
getAiEnabled(LuaHandle * luaHandle);
|
|
static int
|
|
getConsumeEnabled(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
registerCellTriggerEventForUnitToUnit(LuaHandle * luaHandle);
|
|
static int
|
|
registerCellTriggerEventForUnitToLocation(LuaHandle * luaHandle);
|
|
static int
|
|
registerCellTriggerEventForFactionToUnit(LuaHandle * luaHandle);
|
|
static int
|
|
registerCellTriggerEventForFactionToLocation(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
registerCellAreaTriggerEventForUnitToLocation(LuaHandle * luaHandle);
|
|
static int
|
|
registerCellAreaTriggerEventForFactionToLocation(LuaHandle *
|
|
luaHandle);
|
|
|
|
static int
|
|
registerCellAreaTriggerEvent(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
getCellTriggerEventCount(LuaHandle * luaHandle);
|
|
static int
|
|
unregisterCellTriggerEvent(LuaHandle * luaHandle);
|
|
static int
|
|
startTimerEvent(LuaHandle * luaHandle);
|
|
static int
|
|
startEfficientTimerEvent(LuaHandle * luaHandle);
|
|
static int
|
|
resetTimerEvent(LuaHandle * luaHandle);
|
|
static int
|
|
stopTimerEvent(LuaHandle * luaHandle);
|
|
static int
|
|
getTimerEventSecondsElapsed(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
getCellTriggeredEventId(LuaHandle * luaHandle);
|
|
static int
|
|
getTimerTriggeredEventId(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
getCellTriggeredEventAreaEntryUnitId(LuaHandle * luaHandle);
|
|
static int
|
|
getCellTriggeredEventAreaExitUnitId(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
getCellTriggeredEventUnitId(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
setRandomGenInit(LuaHandle * luaHandle);
|
|
static int
|
|
getRandomGen(LuaHandle * luaHandle);
|
|
static int
|
|
getWorldFrameCount(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
setPlayerAsWinner(LuaHandle * luaHandle);
|
|
static int
|
|
endGame(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
startPerformanceTimer(LuaHandle * luaHandle);
|
|
static int
|
|
endPerformanceTimer(LuaHandle * luaHandle);
|
|
static int
|
|
getPerformanceTimerResults(LuaHandle * luaHandle);
|
|
|
|
//callbacks, queries
|
|
static int
|
|
getIsUnitAlive(LuaHandle * luaHandle);
|
|
static int
|
|
getStartLocation(LuaHandle * luaHandle);
|
|
static int
|
|
getUnitPosition(LuaHandle * luaHandle);
|
|
static int
|
|
getUnitFaction(LuaHandle * luaHandle);
|
|
static int
|
|
getUnitName(LuaHandle * luaHandle);
|
|
static int
|
|
getUnitDisplayName(LuaHandle * luaHandle);
|
|
static int
|
|
getResourceAmount(LuaHandle * luaHandle);
|
|
static int
|
|
getLastCreatedUnitName(LuaHandle * luaHandle);
|
|
static int
|
|
getLastCreatedUnitId(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
setUnitPosition(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
addCellMarker(LuaHandle * luaHandle);
|
|
static int
|
|
removeCellMarker(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
showMarker(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
getLastDeadUnitName(LuaHandle * luaHandle);
|
|
static int
|
|
getLastDeadUnitId(LuaHandle * luaHandle);
|
|
static int
|
|
getLastDeadUnitCauseOfDeath(LuaHandle * luaHandle);
|
|
static int
|
|
getLastDeadUnitKillerName(LuaHandle * luaHandle);
|
|
static int
|
|
getLastDeadUnitKillerId(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
getLastAttackedUnitName(LuaHandle * luaHandle);
|
|
static int
|
|
getLastAttackedUnitId(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
getLastAttackingUnitName(LuaHandle * luaHandle);
|
|
static int
|
|
getLastAttackingUnitId(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
getUnitCount(LuaHandle * luaHandle);
|
|
static int
|
|
getUnitCountOfType(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
getGameWon(LuaHandle * luaHandle);
|
|
static int
|
|
getIsGameOver(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
getSystemMacroValue(LuaHandle * luaHandle);
|
|
static int
|
|
getPlayerName(LuaHandle * luaHandle);
|
|
static int
|
|
getFactionName(LuaHandle * luaHandle);
|
|
static int
|
|
scenarioDir(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
loadScenario(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
getUnitsForFaction(LuaHandle * luaHandle);
|
|
static int
|
|
getUnitCurrentField(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
isFreeCellsOrHasUnit(LuaHandle * luaHandle);
|
|
static int
|
|
isFreeCells(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
getHumanFactionId(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
highlightUnit(LuaHandle * luaHandle);
|
|
static int
|
|
unhighlightUnit(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
giveStopCommand(LuaHandle * luaHandle);
|
|
static int
|
|
selectUnit(LuaHandle * luaHandle);
|
|
static int
|
|
isBuilding(LuaHandle * luaHandle);
|
|
static int
|
|
unselectUnit(LuaHandle * luaHandle);
|
|
static int
|
|
addUnitToGroupSelection(LuaHandle * luaHandle);
|
|
static int
|
|
recallGroupSelection(LuaHandle * luaHandle);
|
|
static int
|
|
removeUnitFromGroupSelection(LuaHandle * luaHandle);
|
|
static int
|
|
setAttackWarningsEnabled(LuaHandle * luaHandle);
|
|
static int
|
|
getAttackWarningsEnabled(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
getIsDayTime(LuaHandle * luaHandle);
|
|
static int
|
|
getIsNightTime(LuaHandle * luaHandle);
|
|
static int
|
|
getTimeOfDay(LuaHandle * luaHandle);
|
|
static int
|
|
registerDayNightEvent(LuaHandle * luaHandle);
|
|
static int
|
|
unregisterDayNightEvent(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
registerUnitTriggerEvent(LuaHandle * luaHandle);
|
|
static int
|
|
unregisterUnitTriggerEvent(LuaHandle * luaHandle);
|
|
static int
|
|
getLastUnitTriggerEventUnitId(LuaHandle * luaHandle);
|
|
static int
|
|
getLastUnitTriggerEventType(LuaHandle * luaHandle);
|
|
static int
|
|
getUnitProperty(LuaHandle * luaHandle);
|
|
static int
|
|
setUnitProperty(LuaHandle * luaHandle);
|
|
static int
|
|
getUnitPropertyName(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
disableSpeedChange(LuaHandle * luaHandle);
|
|
static int
|
|
enableSpeedChange(LuaHandle * luaHandle);
|
|
static int
|
|
getSpeedChangeEnabled(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
storeSaveGameData(LuaHandle * luaHandle);
|
|
static int
|
|
loadSaveGameData(LuaHandle * luaHandle);
|
|
|
|
static int
|
|
getFactionPlayerType(LuaHandle * luaHandle);
|
|
};
|
|
|
|
}
|
|
} //end namespace
|
|
|
|
#endif
|