Fix dumdum issue with singles ARGs - again...

This commit is contained in:
sam-astro 2022-05-29 15:15:46 -04:00
parent 68c5ef214f
commit 444fc24e1d
3 changed files with 61 additions and 56 deletions

View File

@ -5,7 +5,7 @@
//bool DEVELOPER_MESSAGES = true; //bool DEVELOPER_MESSAGES = true;
#define DEVELOPER_MESSAGES false #define DEVELOPER_MESSAGES false
#define EXAMPLE_PROJECT false #define EXAMPLE_PROJECT false
#define NAMEVERSION "ZSharp v2.1.1-alpha" #define NAMEVERSION "ZSharp v2.1.2-alpha"
#if defined(__unix__) #if defined(__unix__)
#define UNIX true #define UNIX true
@ -163,7 +163,7 @@ boost::any EvalExpression(const string& ex, unordered_map<string, boost::any>& v
string insideFunArgs = betweenChars(expression, '(', ')'); string insideFunArgs = betweenChars(expression, '(', ')');
vector<string> argList = splitNoOverlap(insideFunArgs, ',', '(', ')'); vector<string> argList = splitNoOverlap(insideFunArgs, ',', '(', ')');
#if DEVELOPER_MESSAGES == true #if DEVELOPER_MESSAGES == true
cout << "[" << unWrapVec(argList) << "]" << endl; cout << split(expression, '(')[0] << " [" << unWrapVec(argList) << "]" << endl;
printVarValues(argList, variableValues); printVarValues(argList, variableValues);
#endif #endif
vector<boost::any> funcArgs = VarValues(argList, variableValues); vector<boost::any> funcArgs = VarValues(argList, variableValues);
@ -419,11 +419,6 @@ boost::any ProcessLine(const vector<vector<string>>& words, int& lineNum, unorde
// Check if it is function call // Check if it is function call
else if (IsFunction(split(words.at(lineNum).at(0), '(')[0])) else if (IsFunction(split(words.at(lineNum).at(0), '(')[0]))
{ {
// No args provided
if (indexInStr(words.at(lineNum).at(0), ')') - indexInStr(words.at(lineNum).at(0), '(')<=1)
ExecuteFunction(split(words.at(lineNum).at(0), '(')[0], vector<boost::any>());
else
{ // Args provided, parse them first
// start -> FuncCall(0, x, OtherFunc(a)) // start -> FuncCall(0, x, OtherFunc(a))
// changeto -> 0, x, OtherFunc(a) // changeto -> 0, x, OtherFunc(a)
string insideFunArgs = betweenChars(unWrapVec(words.at(lineNum)), '(', ')'); string insideFunArgs = betweenChars(unWrapVec(words.at(lineNum)), '(', ')');
@ -434,7 +429,6 @@ boost::any ProcessLine(const vector<vector<string>>& words, int& lineNum, unorde
#endif #endif
vector<boost::any> funcArgs = VarValues(argList, variableValues); vector<boost::any> funcArgs = VarValues(argList, variableValues);
ExecuteFunction(split(words.at(lineNum).at(0), '(')[0], funcArgs); ExecuteFunction(split(words.at(lineNum).at(0), '(')[0], funcArgs);
}
return nullType; return nullType;
} }

View File

@ -409,8 +409,11 @@ boost::any ZSFunction(const string& name, const vector<boost::any>& args)
} }
else if (name == "ZS.Graphics.Sprite") else if (name == "ZS.Graphics.Sprite")
{ {
if (!fileExists(StringRaw(AnyAsString(args.at(0))))) string path = StringRaw(AnyAsString(args.at(0)));
LogCriticalError("Failed to create 'Sprite' object: \"" + StringRaw(AnyAsString(args.at(0))) + "\""); if (count(path, '/') == 0)
path = "./" + path;
if (!fileExists(path))
LogCriticalError("Failed to create 'Sprite' object: \"" + path + "\"");
Sprite s(StringRaw(AnyAsString(args.at(0))), any_cast<Vec2>(args.at(1)), any_cast<Vec2>(args.at(2)), AnyAsFloat(args.at(3))); Sprite s(StringRaw(AnyAsString(args.at(0))), any_cast<Vec2>(args.at(1)), any_cast<Vec2>(args.at(2)), AnyAsFloat(args.at(3)));
return s; return s;
@ -421,17 +424,20 @@ boost::any ZSFunction(const string& name, const vector<boost::any>& args)
any_cast<Sprite>(args.at(0)).Load(); any_cast<Sprite>(args.at(0)).Load();
else if (name == "ZS.Graphics.Text") else if (name == "ZS.Graphics.Text")
{ {
if (!fileExists(StringRaw(AnyAsString(args.at(1))))) string path = StringRaw(AnyAsString(args.at(1)));
LogCriticalError("Failed to create 'Text' object: \"" + StringRaw(AnyAsString(args.at(1))) + "\""); if (count(path, '/') == 0)
path = "./" + path;
if (!fileExists(path))
LogCriticalError("Failed to create 'Text' object: \"" + path + "\"");
if (args.size() <= 8) if (args.size() <= 8)
{ {
Text t(StringRaw(AnyAsString(args.at(0))), StringRaw(AnyAsString(args.at(1))), any_cast<Vec2>(args.at(2)), AnyAsFloat(args.at(3)), AnyAsFloat(args.at(4)), (Uint8)AnyAsFloat(args.at(5)), (Uint8)AnyAsFloat(args.at(6)), (Uint8)AnyAsFloat(args.at(7)), true); Text t(StringRaw(AnyAsString(args.at(0))), path, any_cast<Vec2>(args.at(2)), AnyAsFloat(args.at(3)), AnyAsFloat(args.at(4)), (Uint8)AnyAsFloat(args.at(5)), (Uint8)AnyAsFloat(args.at(6)), (Uint8)AnyAsFloat(args.at(7)), true);
return t; return t;
} }
else else
{ {
Text t(StringRaw(AnyAsString(args.at(0))), StringRaw(AnyAsString(args.at(1))), any_cast<Vec2>(args.at(2)), AnyAsFloat(args.at(3)), AnyAsFloat(args.at(4)), (Uint8)AnyAsFloat(args.at(5)), (Uint8)AnyAsFloat(args.at(6)), (Uint8)AnyAsFloat(args.at(7)), AnyAsBool(args.at(8))); Text t(StringRaw(AnyAsString(args.at(0))), path, any_cast<Vec2>(args.at(2)), AnyAsFloat(args.at(3)), AnyAsFloat(args.at(4)), (Uint8)AnyAsFloat(args.at(5)), (Uint8)AnyAsFloat(args.at(6)), (Uint8)AnyAsFloat(args.at(7)), AnyAsBool(args.at(8)));
return t; return t;
} }
} }

View File

@ -1028,6 +1028,11 @@ int updateLoop()
ExecuteFunction("Update", vector<boost::any> {dt}); ExecuteFunction("Update", vector<boost::any> {dt});
SDL_SetRenderDrawColor(gRenderer, 255, 0, 0, 255);
for (int i = 0; i < WINDOW_WIDTH; ++i)
SDL_RenderDrawPoint(gRenderer, i, i);
SDL_SetRenderDrawColor(gRenderer, 0, 0, 0, 0);
// Present the backbuffer // Present the backbuffer
SDL_RenderPresent(gRenderer); SDL_RenderPresent(gRenderer);