mirror of
https://github.com/jmarshall23/CnC_Remastered_Collection.git
synced 2026-08-20 09:59:41 +02:00
Added more scripting functions.
This commit is contained in:
@@ -2465,7 +2465,7 @@ Mono_Set_Cursor(0,0);
|
|||||||
#endif
|
#endif
|
||||||
BEnd(BENCH_GAME_FRAME);
|
BEnd(BENCH_GAME_FRAME);
|
||||||
|
|
||||||
Scenario_PlayMapStart();
|
Scenario_MapScriptFrame();
|
||||||
|
|
||||||
Sync_Delay();
|
Sync_Delay();
|
||||||
return(!GameActive);
|
return(!GameActive);
|
||||||
|
|||||||
+1
-1
@@ -909,7 +909,7 @@ void Post_Load_Game(int load_net);
|
|||||||
bool End_Game(void);
|
bool End_Game(void);
|
||||||
bool Read_Scenario(char *root);
|
bool Read_Scenario(char *root);
|
||||||
bool Start_Scenario(char *root, bool briefing=true);
|
bool Start_Scenario(char *root, bool briefing=true);
|
||||||
void Scenario_PlayMapStart(void);
|
void Scenario_MapScriptFrame(void);
|
||||||
void Set_Scenario_Difficulty(int difficulty);
|
void Set_Scenario_Difficulty(int difficulty);
|
||||||
HousesType Select_House(void);
|
HousesType Select_House(void);
|
||||||
void Clear_Scenario(void);
|
void Clear_Scenario(void);
|
||||||
|
|||||||
@@ -4,6 +4,30 @@
|
|||||||
#include "FUNCTION.H"
|
#include "FUNCTION.H"
|
||||||
#include "MapScript.h"
|
#include "MapScript.h"
|
||||||
|
|
||||||
|
static int Script_GiveMoney(lua_State* L) {
|
||||||
|
int cashToGive = lua_tointeger(L, -1);
|
||||||
|
PlayerPtr->Refund_Money(cashToGive);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int Script_NumBuildingTypeForPlayer(lua_State* L) {
|
||||||
|
int houseType = lua_tointeger(L, 1);
|
||||||
|
int structType = lua_tointeger(L, 2);
|
||||||
|
int result = 0;
|
||||||
|
for (int b_index = 0; b_index < Buildings.Count(); b_index++) {
|
||||||
|
BuildingClass* building = Buildings.Ptr(b_index);
|
||||||
|
|
||||||
|
if (building->Owner() == houseType) {
|
||||||
|
if (building->Class->Type == structType) {
|
||||||
|
result++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
lua_pushnumber(L, result);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
static int Script_StartMissionTimer(lua_State* L) {
|
static int Script_StartMissionTimer(lua_State* L) {
|
||||||
int ret = lua_tointeger(L, -1);
|
int ret = lua_tointeger(L, -1);
|
||||||
Scen.MissionTimer = Scen.MissionTimer + (ret * (TICKS_PER_MINUTE / 10));
|
Scen.MissionTimer = Scen.MissionTimer + (ret * (TICKS_PER_MINUTE / 10));
|
||||||
@@ -63,6 +87,8 @@ bool MapScript::Init(const char* mapName) {
|
|||||||
lua_register(L, "Speak", Script_Speak);
|
lua_register(L, "Speak", Script_Speak);
|
||||||
lua_register(L, "StartMissionTimer", Script_StartMissionTimer);
|
lua_register(L, "StartMissionTimer", Script_StartMissionTimer);
|
||||||
lua_register(L, "StopMissionTimer", Script_StopMissionTimer);
|
lua_register(L, "StopMissionTimer", Script_StopMissionTimer);
|
||||||
|
lua_register(L, "NumBuildingTypeForPlayer", Script_NumBuildingTypeForPlayer);
|
||||||
|
lua_register(L, "GiveMoney", Script_GiveMoney);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -420,16 +420,17 @@ bool Start_Scenario(char * name, bool briefing)
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Scenario_PlayMapStart(void) {
|
void Scenario_MapScriptFrame(void) {
|
||||||
if (!mapScript)
|
if (!mapScript)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!mapScriptPlayStart)
|
if (mapScriptPlayStart) {
|
||||||
|
mapScript->CallFunction("map_start");
|
||||||
|
mapScriptPlayStart = false;
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
mapScript->CallFunction("map_start");
|
mapScript->CallFunction("map_frame");
|
||||||
|
|
||||||
mapScriptPlayStart = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user