#include "common/Ikari.h"
#include "common/Inventory.h"
#include "common/Item.h"
+#include "common/Script.h"
#include "common/Spell.h"
#include "common/Stats.h"
#include "geometry/Vector.h"
using common::Ikari;
using common::Inventory;
using common::Item;
+using common::Script;
using common::Spell;
using common::Stats;
using geometry::Vector;
Trigger triggers1[1];
triggers1[0].SetTilePosition(Vector<int>(8, 3));
+ triggers1[0].SetType(Trigger::TYPE_NORTH);
SDL_Surface *tilesetImg(IMG_Load("test-data/tileset.png"));
Sprite tileset(tilesetImg, tileSize, tileSize);
Trigger triggers2[1];
triggers2[0].SetTilePosition(Vector<int>(6, 2));
+ triggers2[0].SetType(Trigger::TYPE_SOUTH);
Map map2;
map2.SetAreas(areas2, 1);
map2.SetWidth(1);
map2.SetBattleBackground(bg);
- triggers1[0].map = &map2;
- triggers1[0].target = Vector<int>(6, 2);
-
- triggers2[0].map = &map1;
- triggers2[0].target = Vector<int>(8, 3);
+ unsigned char transition1text[4 + sizeof(int) + sizeof(Map *) + sizeof(Vector<int>)];
+ int i(0);
+ transition1text[i++] = Script::CODE_MOVE_I0;
+ *reinterpret_cast<int *>(transition1text + i) = 1;
+ i += sizeof(int);
+ transition1text[i++] = Script::CODE_MOVE_A0;
+ *reinterpret_cast<Map **>(transition1text + i) = &map2;
+ i += sizeof(Map *);
+ transition1text[i++] = Script::CODE_MOVE_V0;
+ *reinterpret_cast<Vector<int> *>(transition1text + i) = Vector<int>(6, 2);
+ i += sizeof(Vector<int>);
+ transition1text[i++] = Script::CODE_SYSCALL;
+
+ Script transition1;
+ transition1.text = transition1text;
+ transition1.textlen = sizeof(transition1text);
+
+ triggers1[0].SetScript(&transition1);
+
+ unsigned char transition2text[4 + sizeof(int) + sizeof(Map *) + sizeof(Vector<int>)];
+ i = 0;
+ transition2text[i++] = Script::CODE_MOVE_I0;
+ *reinterpret_cast<int *>(transition2text + i) = 1;
+ i += sizeof(int);
+ transition2text[i++] = Script::CODE_MOVE_A0;
+ *reinterpret_cast<Map **>(transition2text + i) = &map1;
+ i += sizeof(Map *);
+ transition2text[i++] = Script::CODE_MOVE_V0;
+ *reinterpret_cast<Vector<int> *>(transition2text + i) = Vector<int>(8, 3);
+ i += sizeof(Vector<int>);
+ transition2text[i++] = Script::CODE_SYSCALL;
+
+ Script transition2;
+ transition2.text = transition2text;
+ transition2.textlen = sizeof(transition2text);
+
+ triggers2[0].SetScript(&transition2);
gameState.heroes[0].MapEntity().Position() = Vector<float>(64, 128);