-
-
Notifications
You must be signed in to change notification settings - Fork 470
Add resetElements argument to resetWaterLevel #2711
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
b53c262
bf061e8
95d97d3
b1e8358
8a11b3c
181bf0f
6728cbe
0b989ac
9c19509
2a5d1a7
30bec61
400e88b
75c36ed
dfb1ea1
366780b
6fd9368
84ec4fc
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -104,6 +104,24 @@ bool CClientWaterManager::SetAllElementWaterLevel(float fLevel, void* pChangeSou | |
return true; | ||
} | ||
|
||
bool CClientWaterManager::ResetAllElementWaterLevel() | ||
{ | ||
for (CClientWater* pWater : m_List) | ||
pWater->ResetLevel(); | ||
return true; | ||
} | ||
Comment on lines
+107
to
+112
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why is this function as a bool if it is unnecessary? The other functions are of type void and this one doesn't seem to need to return a value either |
||
|
||
void CClientWaterManager::ResetElementWaterLevel(CClientWater* pWater) | ||
{ | ||
pWater->ResetLevel(); | ||
} | ||
|
||
void CClientWaterManager::ResetElementWaterLevel(std::vector<CClientWater*>& vecWaterElements) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. vector can be const? |
||
{ | ||
for (CClientWater* pWater : vecWaterElements) | ||
pWater->ResetLevel(); | ||
} | ||
|
||
void CClientWaterManager::ResetWorldWaterLevel() | ||
{ | ||
g_pGame->GetWaterManager()->ResetWorldWaterLevel(); | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -31,6 +31,9 @@ class CClientWaterManager | |
bool SetPositionWaterLevel(const CVector& vecPosition, float fLevel, void* pChangeSource); | ||
bool SetWorldWaterLevel(float fLevel, void* pChangeSource, bool bIncludeWorldNonSeaLevel, bool bIncludeWorldSeaLevel, bool bIncludeOutsideWorldLevel); | ||
bool SetAllElementWaterLevel(float fLevel, void* pChangeSource); | ||
bool ResetAllElementWaterLevel(); | ||
void ResetElementWaterLevel(CClientWater* pWater); | ||
void ResetElementWaterLevel(std::vector<CClientWater*>& vecWaterElements); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. vector can be const? |
||
void ResetWorldWaterLevel(); | ||
|
||
float GetWaveLevel(); | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,14 +10,15 @@ | |
*****************************************************************************/ | ||
|
||
#include "StdInc.h" | ||
#include "lua/CLuaFunctionParser.h" | ||
|
||
void CLuaWaterDefs::LoadFunctions() | ||
{ | ||
constexpr static const std::pair<const char*, lua_CFunction> functions[]{ | ||
{"createWater", CreateWater}, | ||
{"testLineAgainstWater", TestLineAgainstWater}, | ||
{"resetWaterColor", ResetWaterColor}, | ||
{"resetWaterLevel", ResetWaterLevel}, | ||
{"resetWaterLevel", ArgumentParserWarn<false, ResetWaterLevel>}, | ||
|
||
{"setWaterColor", SetWaterColor}, | ||
{"setWaterLevel", SetWaterLevel}, | ||
|
@@ -140,11 +141,42 @@ int CLuaWaterDefs::TestLineAgainstWater(lua_State* luaVM) | |
return 1; | ||
} | ||
|
||
int CLuaWaterDefs::ResetWaterLevel(lua_State* luaVM) | ||
bool CLuaWaterDefs::ResetWaterLevel(std::variant<std::monostate, bool, std::vector<CClientWater*>, CClientWater*> resetElements) | ||
{ | ||
CStaticFunctionDefinitions::ResetWorldWaterLevel(); | ||
lua_pushboolean(luaVM, true); | ||
return 1; | ||
CClientWaterManager* pWaterManager = g_pClientGame->GetManager()->GetWaterManager(); | ||
|
||
switch (resetElements.index()) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What do you think about using |
||
{ | ||
case 0: | ||
CStaticFunctionDefinitions::ResetWorldWaterLevel(); | ||
break; | ||
|
||
case 1: | ||
{ | ||
if (std::get<bool>(resetElements) == true) | ||
pWaterManager->ResetAllElementWaterLevel(); | ||
else | ||
CStaticFunctionDefinitions::ResetWorldWaterLevel(); | ||
|
||
break; | ||
} | ||
|
||
case 2: | ||
{ | ||
auto& vecWaterElements = std::get<std::vector<CClientWater*>>(resetElements); | ||
pWaterManager->ResetElementWaterLevel(vecWaterElements); | ||
break; | ||
} | ||
|
||
case 3: | ||
{ | ||
auto pWaterElement = std::get<CClientWater*>(resetElements); | ||
pWaterManager->ResetElementWaterLevel(pWaterElement); | ||
break; | ||
} | ||
} | ||
|
||
return true; | ||
} | ||
|
||
int CLuaWaterDefs::ResetWaterColor(lua_State* luaVM) | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -19,7 +19,6 @@ class CLuaWaterDefs : public CLuaDefs | |
static void AddClass(lua_State* luaVM); | ||
|
||
LUA_DECLARE(CreateWater); | ||
LUA_DECLARE(ResetWaterLevel); | ||
LUA_DECLARE(ResetWaterColor); | ||
LUA_DECLARE(TestLineAgainstWater); | ||
|
||
|
@@ -32,4 +31,6 @@ class CLuaWaterDefs : public CLuaDefs | |
LUA_DECLARE(GetWaterLevel); | ||
LUA_DECLARE(IsWaterDrawnLast); | ||
LUA_DECLARE(GetWaterVertexPosition); | ||
|
||
static bool ResetWaterLevel(std::variant<std::monostate, bool, std::vector<CClientWater*>, CClientWater*> resetElements); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. resetElements can be const? |
||
}; |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -69,6 +69,23 @@ void CWaterManager::SetAllElementWaterLevel(float fLevel) | |
} | ||
} | ||
|
||
void CWaterManager::ResetAllElementWaterLevel() | ||
{ | ||
for (CWater* pWater : m_List) | ||
pWater->ResetLevel(); | ||
} | ||
|
||
void CWaterManager::ResetElementWaterLevel(CWater* pWater) | ||
{ | ||
pWater->ResetLevel(); | ||
} | ||
|
||
void CWaterManager::ResetElementWaterLevel(std::vector<CWater*>& vecWaterElements) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. vector can be const? |
||
{ | ||
for (CWater* pWater : vecWaterElements) | ||
pWater->ResetLevel(); | ||
} | ||
|
||
void CWaterManager::SetWorldWaterLevel(float fLevel, bool bIncludeWorldNonSeaLevel, bool bIncludeWorldSeaLevel, bool bIncludeOutsideWorldLevel) | ||
{ | ||
if (bIncludeWorldSeaLevel) | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -37,6 +37,9 @@ class CWaterManager | |
void ResetWorldWaterLevel(); | ||
void SetElementWaterLevel(CWater* pWater, float fLevel); | ||
void SetAllElementWaterLevel(float fLevel); | ||
void ResetAllElementWaterLevel(); | ||
void ResetElementWaterLevel(CWater* pWater); | ||
void ResetElementWaterLevel(std::vector<CWater*>& vecWaterElements); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. vector can be const? |
||
|
||
std::list<CWater*>::const_iterator IterBegin() { return m_List.begin(); } | ||
std::list<CWater*>::const_iterator IterEnd() { return m_List.end(); } | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,15 +12,17 @@ | |
#include "StdInc.h" | ||
#include "CLuaWaterDefs.h" | ||
#include "CWater.h" | ||
#include "CWaterManager.h" | ||
#include "CStaticFunctionDefinitions.h" | ||
#include "CScriptArgReader.h" | ||
#include "lua/CLuaFunctionParser.h" | ||
|
||
void CLuaWaterDefs::LoadFunctions() | ||
{ | ||
constexpr static const std::pair<const char*, lua_CFunction> functions[]{ | ||
{"createWater", CreateWater}, | ||
{"setWaterLevel", SetWaterLevel}, | ||
{"resetWaterLevel", ResetWaterLevel}, | ||
{"resetWaterLevel", ArgumentParserWarn<false, ResetWaterLevel>}, | ||
{"getWaterVertexPosition", GetWaterVertexPosition}, | ||
{"setWaterVertexPosition", SetWaterVertexPosition}, | ||
{"getWaterColor", GetWaterColor}, | ||
|
@@ -167,11 +169,42 @@ int CLuaWaterDefs::SetWaterLevel(lua_State* luaVM) | |
return 1; | ||
} | ||
|
||
int CLuaWaterDefs::ResetWaterLevel(lua_State* luaVM) | ||
bool CLuaWaterDefs::ResetWaterLevel(std::variant<std::monostate, bool, std::vector<CWater*>, CWater*> resetElements) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. resetElements can be const? |
||
{ | ||
CStaticFunctionDefinitions::ResetWorldWaterLevel(); | ||
lua_pushboolean(luaVM, true); | ||
return 1; | ||
CWaterManager* pWaterManager = g_pGame->GetWaterManager(); | ||
|
||
switch (resetElements.index()) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What do you think about using |
||
{ | ||
case 0: | ||
CStaticFunctionDefinitions::ResetWorldWaterLevel(); | ||
break; | ||
|
||
case 1: | ||
{ | ||
if (std::get<bool>(resetElements) == true) | ||
pWaterManager->ResetAllElementWaterLevel(); | ||
else | ||
CStaticFunctionDefinitions::ResetWorldWaterLevel(); | ||
|
||
break; | ||
} | ||
|
||
case 2: | ||
{ | ||
auto& vecWaterElements = std::get<std::vector<CWater*>>(resetElements); | ||
pWaterManager->ResetElementWaterLevel(vecWaterElements); | ||
break; | ||
} | ||
|
||
case 3: | ||
{ | ||
auto pWaterElement = std::get<CWater*>(resetElements); | ||
pWaterManager->ResetElementWaterLevel(pWaterElement); | ||
break; | ||
} | ||
} | ||
|
||
return true; | ||
} | ||
|
||
int CLuaWaterDefs::GetWaterVertexPosition(lua_State* luaVM) | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -20,10 +20,11 @@ class CLuaWaterDefs : public CLuaDefs | |
|
||
LUA_DECLARE(CreateWater); | ||
LUA_DECLARE(SetWaterLevel); | ||
LUA_DECLARE(ResetWaterLevel); | ||
LUA_DECLARE(GetWaterVertexPosition); | ||
LUA_DECLARE(SetWaterVertexPosition); | ||
LUA_DECLARE(GetWaterColor); | ||
LUA_DECLARE(SetWaterColor); | ||
LUA_DECLARE(ResetWaterColor); | ||
}; | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. resetElements can be const? |
||
static bool ResetWaterLevel(std::variant<std::monostate, bool, std::vector<CWater*>, CWater*> resetElements); | ||
}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
m_fDefaultLevel