Remove SFallScriptValue
This commit is contained in:
parent
b3e838e5b3
commit
c25a553cfa
|
@ -1,109 +0,0 @@
|
|||
|
||||
#include "sfall_script_value.h"
|
||||
#include <utility>
|
||||
|
||||
namespace fallout {
|
||||
SFallScriptValue::SFallScriptValue()
|
||||
{
|
||||
opcode = VALUE_TYPE_INT;
|
||||
integerValue = 0;
|
||||
}
|
||||
SFallScriptValue::SFallScriptValue(int value)
|
||||
{
|
||||
opcode = VALUE_TYPE_INT;
|
||||
integerValue = value;
|
||||
};
|
||||
SFallScriptValue::SFallScriptValue(Object* value)
|
||||
{
|
||||
opcode = VALUE_TYPE_PTR;
|
||||
pointerValue = value;
|
||||
};
|
||||
SFallScriptValue::SFallScriptValue(const ProgramValue& value)
|
||||
{
|
||||
opcode = value.opcode;
|
||||
|
||||
switch (opcode) {
|
||||
case VALUE_TYPE_DYNAMIC_STRING:
|
||||
case VALUE_TYPE_STRING:
|
||||
pointerValue = value.pointerValue;
|
||||
break;
|
||||
case VALUE_TYPE_PTR:
|
||||
pointerValue = value.pointerValue;
|
||||
break;
|
||||
case VALUE_TYPE_INT:
|
||||
integerValue = value.integerValue;
|
||||
break;
|
||||
case VALUE_TYPE_FLOAT:
|
||||
floatValue = value.floatValue;
|
||||
break;
|
||||
default:
|
||||
throw(std::exception());
|
||||
}
|
||||
}
|
||||
|
||||
bool SFallScriptValue::isInt() const
|
||||
{
|
||||
return opcode == VALUE_TYPE_INT;
|
||||
}
|
||||
bool SFallScriptValue::isFloat() const
|
||||
{
|
||||
return opcode == VALUE_TYPE_FLOAT;
|
||||
}
|
||||
bool SFallScriptValue::isPointer() const
|
||||
{
|
||||
return opcode == VALUE_TYPE_PTR;
|
||||
}
|
||||
|
||||
int SFallScriptValue::asInt() const
|
||||
{
|
||||
switch (opcode) {
|
||||
case VALUE_TYPE_INT:
|
||||
return integerValue;
|
||||
case VALUE_TYPE_FLOAT:
|
||||
return static_cast<int>(floatValue);
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
bool SFallScriptValue::operator<(SFallScriptValue const& other) const
|
||||
{
|
||||
if (opcode != other.opcode) {
|
||||
return opcode < other.opcode;
|
||||
}
|
||||
|
||||
switch (opcode) {
|
||||
case VALUE_TYPE_DYNAMIC_STRING:
|
||||
case VALUE_TYPE_STRING:
|
||||
case VALUE_TYPE_PTR:
|
||||
return pointerValue < other.pointerValue;
|
||||
case VALUE_TYPE_INT:
|
||||
return integerValue < other.integerValue;
|
||||
case VALUE_TYPE_FLOAT:
|
||||
return floatValue < other.floatValue;
|
||||
default:
|
||||
throw(std::exception());
|
||||
}
|
||||
}
|
||||
|
||||
bool SFallScriptValue::operator==(SFallScriptValue const& other) const
|
||||
{
|
||||
if (opcode != other.opcode) {
|
||||
return false;
|
||||
}
|
||||
|
||||
switch (opcode) {
|
||||
case VALUE_TYPE_DYNAMIC_STRING:
|
||||
case VALUE_TYPE_STRING:
|
||||
case VALUE_TYPE_PTR:
|
||||
return pointerValue == other.pointerValue;
|
||||
case VALUE_TYPE_INT:
|
||||
return integerValue == other.integerValue;
|
||||
case VALUE_TYPE_FLOAT:
|
||||
return floatValue == other.floatValue;
|
||||
default:
|
||||
throw(std::exception());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
#ifndef SFALL_SCRIPT_VALUE
|
||||
#define SFALL_SCRIPT_VALUE
|
||||
|
||||
#include "interpreter.h"
|
||||
#include "object.h"
|
||||
|
||||
namespace fallout {
|
||||
|
||||
class SFallScriptValue : public ProgramValue {
|
||||
public:
|
||||
SFallScriptValue();
|
||||
SFallScriptValue(int value);
|
||||
SFallScriptValue(Object* value);
|
||||
SFallScriptValue(const ProgramValue& value);
|
||||
|
||||
bool isInt() const;
|
||||
bool isFloat() const;
|
||||
bool isPointer() const;
|
||||
int asInt() const;
|
||||
|
||||
bool operator<(SFallScriptValue const& other) const;
|
||||
bool operator==(SFallScriptValue const& other) const;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* SFALL_SCRIPT_VALUE */
|
Loading…
Reference in New Issue