Skip to content

Commit 7838b7b

Browse files
author
Octalype
committed
Add client-side function extinguishAllFires
Also moved Fire functions to CLuaFireDefs
1 parent 40118f7 commit 7838b7b

File tree

7 files changed

+106
-58
lines changed

7 files changed

+106
-58
lines changed

Client/mods/deathmatch/logic/CStaticFunctionDefinitions.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4112,6 +4112,12 @@ bool CStaticFunctionDefinitions::ExtinguishFireInRadius(CVector& vecPosition, fl
41124112
return true;
41134113
}
41144114

4115+
bool CStaticFunctionDefinitions::ExtinguishAllFires()
4116+
{
4117+
g_pGame->GetFireManager()->ExtinguishAllFires();
4118+
return true;
4119+
}
4120+
41154121
bool CStaticFunctionDefinitions::PlaySoundFrontEnd(unsigned char ucSound)
41164122
{
41174123
g_pGame->GetAudioEngine()->PlayFrontEndSound(ucSound);

Client/mods/deathmatch/logic/CStaticFunctionDefinitions.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,7 @@ class CStaticFunctionDefinitions
308308
// Fire funcs
309309
static bool CreateFire(CVector& vecPosition, float fSize);
310310
static bool ExtinguishFireInRadius(CVector& vecPosition, float fRadius);
311+
static bool ExtinguishAllFires();
311312

312313
// Light funcs
313314
static CClientPointLights* CreateLight(CResource& Resource, int iMode, const CVector& vecPosition, float fRadius, SColor color, CVector& vecDirection);

Client/mods/deathmatch/logic/lua/CLuaFunctionDefs.World.cpp

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -46,56 +46,6 @@ int CLuaFunctionDefs::CreateExplosion(lua_State* luaVM)
4646
return 1;
4747
}
4848

49-
int CLuaFunctionDefs::CreateFire(lua_State* luaVM)
50-
{
51-
// bool createFire ( float x, float y, float z [, float size = 1.8 ] )
52-
CVector vecPosition;
53-
float fSize;
54-
55-
CScriptArgReader argStream(luaVM);
56-
argStream.ReadVector3D(vecPosition);
57-
argStream.ReadNumber(fSize, 1.8f);
58-
59-
if (!argStream.HasErrors())
60-
{
61-
if (CStaticFunctionDefinitions::CreateFire(vecPosition, fSize))
62-
{
63-
lua_pushboolean(luaVM, true);
64-
return 1;
65-
}
66-
}
67-
else
68-
m_pScriptDebugging->LogCustom(luaVM, argStream.GetFullErrorMessage());
69-
70-
lua_pushboolean(luaVM, false);
71-
return 1;
72-
}
73-
74-
int CLuaFunctionDefs::ExtinguishFireInRadius(lua_State* luaVM)
75-
{
76-
// bool extinguishFireInRadius ( float x, float y, float z [, float radius = 1.0 ] )
77-
CVector vecPosition;
78-
float fRadius;
79-
80-
CScriptArgReader argStream(luaVM);
81-
argStream.ReadVector3D(vecPosition);
82-
argStream.ReadNumber(fRadius, 1.0f);
83-
84-
if (!argStream.HasErrors())
85-
{
86-
if (CStaticFunctionDefinitions::ExtinguishFireInRadius(vecPosition, fRadius))
87-
{
88-
lua_pushboolean(luaVM, true);
89-
return 1;
90-
}
91-
}
92-
else
93-
m_pScriptDebugging->LogCustom(luaVM, argStream.GetFullErrorMessage());
94-
95-
lua_pushboolean(luaVM, false);
96-
return 1;
97-
}
98-
9949
int CLuaFunctionDefs::GetTime_(lua_State* luaVM)
10050
{
10151
// Get the time

Client/mods/deathmatch/logic/lua/CLuaFunctionDefs.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,6 @@ class CLuaFunctionDefs
6767
// Explosion functions
6868
LUA_DECLARE(CreateExplosion);
6969

70-
// Fire functions
71-
LUA_DECLARE(CreateFire);
72-
LUA_DECLARE(ExtinguishFireInRadius);
73-
7470
// Cursor funcs
7571
LUA_DECLARE(GetCursorPosition);
7672
LUA_DECLARE(SetCursorPosition);

Client/mods/deathmatch/logic/lua/CLuaManager.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
*****************************************************************************/
1111

1212
#include "StdInc.h"
13+
#include "../luadefs/CLuaFireDefs.h"
1314

1415
using std::list;
1516

@@ -242,10 +243,6 @@ void CLuaManager::LoadCFunctions(void)
242243
// Explosion funcs
243244
CLuaCFunctions::AddFunction("createExplosion", CLuaFunctionDefs::CreateExplosion);
244245

245-
// Fire funcs
246-
CLuaCFunctions::AddFunction("createFire", CLuaFunctionDefs::CreateFire);
247-
CLuaCFunctions::AddFunction("extinguishFireInRadius", CLuaFunctionDefs::ExtinguishFireInRadius);
248-
249246
// Cursor funcs
250247
CLuaCFunctions::AddFunction("getCursorPosition", CLuaFunctionDefs::GetCursorPosition);
251248
CLuaCFunctions::AddFunction("setCursorPosition", CLuaFunctionDefs::SetCursorPosition);
@@ -403,6 +400,7 @@ void CLuaManager::LoadCFunctions(void)
403400
CLuaEffectDefs::LoadFunctions();
404401
CLuaElementDefs::LoadFunctions();
405402
CLuaEngineDefs::LoadFunctions();
403+
CLuaFireDefs::LoadFunctions();
406404
CLuaGUIDefs::LoadFunctions();
407405
CLuaMarkerDefs::LoadFunctions();
408406
CLuaObjectDefs::LoadFunctions();
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
/*****************************************************************************
2+
*
3+
* PROJECT: Multi Theft Auto
4+
* LICENSE: See LICENSE in the top level directory
5+
* FILE: Client/mods/deathmatch/logic/luadefs/CLuaFireDefs.cpp
6+
*
7+
* Multi Theft Auto is available from http://www.multitheftauto.com/
8+
*
9+
*****************************************************************************/
10+
#include "StdInc.h"
11+
#include "CLuaFireDefs.h"
12+
13+
void CLuaFireDefs::LoadFunctions(void)
14+
{
15+
CLuaCFunctions::AddFunction("createFire", CLuaFireDefs::CreateFire);
16+
CLuaCFunctions::AddFunction("extinguishFireInRadius", CLuaFireDefs::ExtinguishFireInRadius);
17+
CLuaCFunctions::AddFunction("extinguishAllFires", CLuaFireDefs::ExtinguishAllFires);
18+
}
19+
20+
int CLuaFireDefs::CreateFire(lua_State* luaVM)
21+
{
22+
// bool createFire ( float x, float y, float z [, float size = 1.8 ] )
23+
CVector vecPosition;
24+
float fSize;
25+
26+
CScriptArgReader argStream(luaVM);
27+
argStream.ReadVector3D(vecPosition);
28+
argStream.ReadNumber(fSize, 1.8f);
29+
30+
if (!argStream.HasErrors())
31+
{
32+
if (CStaticFunctionDefinitions::CreateFire(vecPosition, fSize))
33+
{
34+
lua_pushboolean(luaVM, true);
35+
return 1;
36+
}
37+
}
38+
else
39+
m_pScriptDebugging->LogCustom(luaVM, argStream.GetFullErrorMessage());
40+
41+
lua_pushboolean(luaVM, false);
42+
return 1;
43+
}
44+
45+
int CLuaFireDefs::ExtinguishFireInRadius(lua_State* luaVM)
46+
{
47+
// bool extinguishFireInRadius ( float x, float y, float z [, float radius = 1.0 ] )
48+
CVector vecPosition;
49+
float fRadius;
50+
51+
CScriptArgReader argStream(luaVM);
52+
argStream.ReadVector3D(vecPosition);
53+
argStream.ReadNumber(fRadius, 1.0f);
54+
55+
if (!argStream.HasErrors())
56+
{
57+
if (CStaticFunctionDefinitions::ExtinguishFireInRadius(vecPosition, fRadius))
58+
{
59+
lua_pushboolean(luaVM, true);
60+
return 1;
61+
}
62+
}
63+
else
64+
m_pScriptDebugging->LogCustom(luaVM, argStream.GetFullErrorMessage());
65+
66+
lua_pushboolean(luaVM, false);
67+
return 1;
68+
}
69+
70+
int CLuaFireDefs::ExtinguishAllFires(lua_State* luaVM)
71+
{
72+
// bool extinguishAllFires ( )
73+
lua_pushboolean(luaVM, CStaticFunctionDefinitions::ExtinguishAllFires());
74+
return 1;
75+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/*****************************************************************************
2+
*
3+
* PROJECT: Multi Theft Auto
4+
* LICENSE: See LICENSE in the top level directory
5+
* FILE: Client/mods/deathmatch/logic/luadefs/CLuaFireDefs.h
6+
*
7+
* Multi Theft Auto is available from http://www.multitheftauto.com/
8+
*
9+
*****************************************************************************/
10+
#pragma once
11+
12+
#include "CLuaDefs.h"
13+
14+
class CLuaFireDefs : public CLuaDefs
15+
{
16+
public:
17+
static void LoadFunctions(void);
18+
19+
LUA_DECLARE(CreateFire);
20+
LUA_DECLARE(ExtinguishFireInRadius);
21+
LUA_DECLARE(ExtinguishAllFires);
22+
};

0 commit comments

Comments
 (0)