Fixes for implicit casting when assigning variables
This commit is contained in:
@@ -82,8 +82,11 @@ namespace Porygon::Evaluation {
|
||||
EvalValue *NumericEvalValue::Cast(shared_ptr<const ScriptType> castType) const {
|
||||
if (castType->GetClass() == TypeClass::Number){
|
||||
auto num = static_pointer_cast<const NumericScriptType>(castType);
|
||||
if (num->IsFloat()){
|
||||
return new NumericEvalValue(std::get<int64_t >(_intValue));
|
||||
if (num->IsFloat() && !this->_isFloat){
|
||||
return new NumericEvalValue(static_cast<double>(std::get<int64_t >(_intValue)));
|
||||
}
|
||||
else if(!num->IsFloat() && this->_isFloat){
|
||||
return new NumericEvalValue(static_cast<int64_t>(std::get<double >(_floatValue)));
|
||||
}
|
||||
}
|
||||
return EvalValue::Cast(castType);
|
||||
|
||||
Reference in New Issue
Block a user