Allow sprite scaling

This commit is contained in:
sam-astro 2022-05-24 18:10:28 -04:00
parent 3c684f2153
commit b8320da1aa
3 changed files with 13 additions and 10 deletions

View File

@ -151,7 +151,7 @@ boost::any EvalExpression(const string& ex, unordered_map<string, boost::any>& v
#endif #endif
vector<string> argList = splitNoOverlap(insideFunArgs, ',', '(', ')'); vector<string> argList = splitNoOverlap(insideFunArgs, ',', '(', ')');
#if DEVELOPER_MESSAGES == true #if DEVELOPER_MESSAGES == true
cout << "["<<unWrapVec(argList) <<"]" << endl; cout << "[" << unWrapVec(argList) << "]" << endl;
#endif #endif
vector<boost::any> funcArgs = VarValues(argList, variableValues); vector<boost::any> funcArgs = VarValues(argList, variableValues);
return ExecuteFunction(trim(split(expression, '(')[0]), funcArgs); return ExecuteFunction(trim(split(expression, '(')[0]), funcArgs);
@ -240,8 +240,8 @@ boost::any EvalExpression(const string& ex, unordered_map<string, boost::any>& v
else else
{ {
newExpression += expression[i]; newExpression += expression[i];
}
} }
}
#if DEVELOPER_MESSAGES == true #if DEVELOPER_MESSAGES == true
//InterpreterLog(" new expression: |" + newExpression + "|"); //InterpreterLog(" new expression: |" + newExpression + "|");
#endif #endif
@ -448,6 +448,7 @@ boost::any ProcessLine(const vector<vector<string>>& words, int& lineNum, unorde
// re-inits a variable then store it with it's value // re-inits a variable then store it with it's value
else if (countInVector(types, trim(words.at(lineNum).at(0))) > 0) else if (countInVector(types, trim(words.at(lineNum).at(0))) > 0)
{ {
//cout << words.at(lineNum).at(1) << "=" << unWrapVec(slice(words.at(lineNum), 3, -1)) << "=" << AnyAsString(EvalExpression(unWrapVec(slice(words.at(lineNum), 3, -1)), variableValues)) << endl;
variableValues[words.at(lineNum).at(1)] = EvalExpression(unWrapVec(slice(words.at(lineNum), 3, -1)), variableValues); variableValues[words.at(lineNum).at(1)] = EvalExpression(unWrapVec(slice(words.at(lineNum), 3, -1)), variableValues);
return nullType; return nullType;
} }
@ -621,7 +622,7 @@ boost::any ExecuteFunction(const string& functionName, const vector<boost::any>&
cout << functionName + " \x1B[33m" << funcArgs[i] << " == " << AnyAsString(inputVarVals[i]) << "\033[0m\t\t" << endl; cout << functionName + " \x1B[33m" << funcArgs[i] << " == " << AnyAsString(inputVarVals[i]) << "\033[0m\t\t" << endl;
#endif #endif
} }
} }
//Iterate through all lines in function //Iterate through all lines in function
for (int lineNum = 1; lineNum < (int)words.size(); lineNum++) for (int lineNum = 1; lineNum < (int)words.size(); lineNum++)
@ -696,7 +697,7 @@ int parseZSharp(string script)
functionContents.push_back(removeTabs(words.at(p), 1)); functionContents.push_back(removeTabs(words.at(p), 1));
} }
functionValues[functName] = functionContents; functionValues[functName] = functionContents;
} }
else else
{ {
if (words.at(lineNum).at(0) == "include") if (words.at(lineNum).at(0) == "include")
@ -755,8 +756,8 @@ int parseZSharp(string script)
} }
/*else /*else
LogWarning("unrecognized type \'" + words.at(lineNum).at(0) + "\' on line: " + to_string(lineNum));*/ LogWarning("unrecognized type \'" + words.at(lineNum).at(0) + "\' on line: " + to_string(lineNum));*/
} }
} }
return 0; return 0;
} }

View File

@ -392,10 +392,10 @@ public:
{ {
SDL_RenderCopy(gRenderer, texture, NULL, &rect); SDL_RenderCopy(gRenderer, texture, NULL, &rect);
// Centers // Centers
rect.x = position.x - (rect.w / 2);
rect.y = position.y - (rect.h / 2);
rect.w = scale.x; rect.w = scale.x;
rect.h = scale.y; rect.h = scale.y;
rect.x = position.x - (rect.w / 2);
rect.y = position.y - (rect.h / 2);
return 0; return 0;
} }
@ -504,6 +504,8 @@ public:
scale.y /= AnyAsFloat(otherVal); scale.y /= AnyAsFloat(otherVal);
} }
// Centers // Centers
rect.w = scale.x;
rect.h = scale.y;
rect.x = position.x - (rect.w / 2); rect.x = position.x - (rect.w / 2);
rect.y = position.y - (rect.h / 2); rect.y = position.y - (rect.h / 2);
return *this; return *this;

View File

@ -161,13 +161,13 @@ vector<string> splitNoOverlap(const string& str, const char& splitBy, const char
{ {
if (i == (int)str.size() - 1) if (i == (int)str.size() - 1)
{ {
newStr.push_back(tmpStr+ str[i]); newStr.push_back(trim(tmpStr + str[i]));
break; break;
} }
if (str[i] == splitBy && openCount == 0) if (str[i] == splitBy && openCount == 0)
{ {
newStr.push_back(tmpStr); newStr.push_back(trim(tmpStr));
tmpStr = ""; tmpStr = "";
continue; continue;
} }