ai_list.cpp
Go to the documentation of this file.00001
00002
00005 #include <squirrel.h>
00006 #include "ai_list.hpp"
00007
00008 void AIList::AddItem(int32 item, int32 value)
00009 {
00010 AIAbstractList::AddItem(item);
00011 this->SetValue(item, value);
00012 }
00013
00014 void AIList::ChangeItem(int32 item, int32 value)
00015 {
00016 this->SetValue(item, value);
00017 }
00018
00019 void AIList::RemoveItem(int32 item)
00020 {
00021 AIAbstractList::RemoveItem(item);
00022 }
00023
00024 SQInteger AIList::_set(HSQUIRRELVM vm) {
00025 if (sq_gettype(vm, 2) != OT_INTEGER) return SQ_ERROR;
00026 if (sq_gettype(vm, 3) != OT_INTEGER || sq_gettype(vm, 3) == OT_NULL) {
00027 return sq_throwerror(vm, _SC("you can only assign integers to this list"));
00028 }
00029
00030 SQInteger idx, val;
00031 sq_getinteger(vm, 2, &idx);
00032 if (sq_gettype(vm, 3) == OT_NULL) {
00033 this->RemoveItem(idx);
00034 return 0;
00035 }
00036
00037 sq_getinteger(vm, 3, &val);
00038 if (!this->HasItem(idx)) {
00039 this->AddItem(idx, val);
00040 return 0;
00041 }
00042
00043 this->ChangeItem(idx, val);
00044 return 0;
00045 }