#define DISABLE_TUTORIALS
#include EAstdlib.event
#include NewMacros.event
#include FE7v3_definition.txt
EventPointerTable(0x76,Pointers)
org 0xD80000
Pointers:
POIN Turn_events
POIN Character_events
POIN Location_events
POIN Misc_events
POIN BallistaData BallistaData
POIN Bad Bad Bad Bad
POIN GoodEM GoodEM GoodHM GoodHM
POIN Opening_event Ending_event
Bad:
UNIT Oleg Warrior Oleg Level(14,Enemy,False) [13,1] [13,1] [KillerAxe,HandAxe,Vulnerary,FellContract] [GUARD]
UNIT Bandit Fighter Oleg Level(11,Enemy,True) [10,2] [10,2] [SteelAxe,HandAxe] [ATRANGE]
UNIT Bandit Fighter Oleg Level(12,Enemy,True) [11,3] [11,3] [KillerAxe] [ATRANGE]
UNIT Bandit Fighter Oleg Level(11,Enemy,True) [12,2] [12,2] [SteelAxe,HandAxe] [ATRANGE]
UNIT Bandit Fighter Oleg Level(11,Enemy,True) [14,2] [14,2] [SteelAxe,HandAxe] [ATRANGE]
UNIT Bandit Fighter Oleg Level(12,Enemy,True) [15,3] [15,3] [KillerAxe] [ATRANGE]
UNIT Bandit Fighter Oleg Level(11,Enemy,True) [16,2] [16,2] [SteelAxe,HandAxe] [ATRANGE]
UNIT Bandit Knight Oleg Level(13,Enemy,True) [12,13] [12,13] [SteelSpear,Javelin] [GUARD]
UNIT Bandit Knight Oleg Level(12,Enemy,True) [13,13] [13,13] [SteelSpear,Javelin,Vulnerary] [GUARD]
UNIT Bandit Mage Oleg Level(12,Enemy,True) [12,12] [12,12] [Elfire] [GUARD]
UNIT Bandit Mage Oleg Level(12,Enemy,True) [13,12] [13,12] [Thunder,SecretBook] [GUARD]
UNIT Bandit Fighter Oleg Level(2,Enemy,True) [9,7] [9,7] [SteelAxe] [NOAI]
UNIT Bandit Fighter Oleg Level(2,Enemy,True) [16,10] [16,10] [IronAxe,DoorKey] [NOAI]
UNIT Bandit Knight Oleg Level(13,Enemy,True) [2,10] [2,10] [SteelSpear,Javelin] [ATRANGE]
UNIT Bandit Knight Oleg Level(13,Enemy,True) [23,10] [23,10] [SteelSpear,Javelin] [ATRANGE]
UNIT Bandit Mercenary Oleg Level(11,Enemy,True) [3,11] [3,11] [SteelSword,Vulnerary] [NOAI]
UNIT Bandit Mercenary Oleg Level(11,Enemy,True) [2,12] [2,12] [PoisonSword] [NOAI]
UNIT Bandit Myrmidon Oleg Level(12,Enemy,True) [22,11] [22,11] [KillingEdge] [NOAI]
UNIT Bandit Myrmidon Oleg Level(10,Enemy,True) [23,12] [23,12] [PoisonSword] [NOAI]
UNIT Bandit Knight Oleg Level(11,Enemy,True) [10,14] [10,14] [IronSpear,Javelin,Vulnerary] [GUARD]
UNIT Bandit Knight Oleg Level(11,Enemy,True) [15,14] [15,14] [PoisonSpear,Javelin] [GUARD]
UNIT Bandit Shaman Oleg Level(9,Enemy,True) [10,13] [10,13] [Flux] [GUARD]
UNIT Bandit Shaman Oleg Level(9,Enemy,True) [15,13] [15,13] [Flux] [GUARD]
UNIT Bandit Archer Oleg Level(10,Enemy,True) [7,12] [7,12] [SteelBow,Longbow] [ATRANGE]
UNIT Bandit Archer Oleg Level(11,Enemy,True) [17,12] [17,12] [IronBow,Longbow] [ATRANGE]
UNIT Bandit Knight Oleg Level(11,Enemy,True) [6,7] [6,7] [SilverSpear,Javelin] [GUARD]
UNIT Bandit Knight Oleg Level(12,Enemy,True) [7,7] [7,7] [IronSpear,Javelin] [GUARD]
UNIT Bandit Knight Oleg Level(11,Enemy,True) [18,7] [18,7] [KillerLance,Javelin] [GUARD]
UNIT Bandit Knight Oleg Level(12,Enemy,True) [19,7] [19,7] [SteelSpear,Javelin] [GUARD]
UNIT Bandit Mage Oleg Level(11,Enemy,True) [6,6] [6,6] [Elfire] [GUARD]
UNIT Bandit Mage Oleg Level(12,Enemy,True) [7,6] [7,6] [Thunder] [GUARD]
UNIT Bandit Archer Oleg Level(11,Enemy,True) [18,6] [18,6] [SteelBow] [ATRANGE]
UNIT Bandit Archer Oleg Level(10,Enemy,True) [19,6] [19,6] [KillerBow] [ATRANGE]
UNIT Bandit Mage Oleg Level(11,Enemy,True) [3,16] [3,16] [Thunder] [ATRANGE]
UNIT Bandit Mage Oleg Level(11,Enemy,True) [4,16] [4,16] [Thunder] [ATRANGE]
UNIT Bandit Knight Oleg Level(10,Enemy,True) [3,17] [4,17] [SteelSpear,Javelin] [GUARD]
UNIT Bandit Knight Oleg Level(10,Enemy,True) [4,17] [4,17] [SteelSpear,Javelin] [GUARD]
UNIT Bandit Shaman Oleg Level(11,Enemy,True) [21,16] [21,16] [Flux] [ATRANGE]
UNIT Bandit Shaman Oleg Level(11,Enemy,True) [22,16] [22,16] [Flux] [ATRANGE]
UNIT Bandit Knight Oleg Level(10,Enemy,True) [21,17] [21,17] [SteelSpear,Javelin] [GUARD]
UNIT Bandit Knight Oleg Level(10,Enemy,True) [22,17] [22,17] [SteelSpear,Javelin] [GUARD]
UNIT Bandit Cavalier Oleg Level(10,Enemy,True) [19,21] [19,21] [KillingEdge] [NOAI]
UNIT Bandit Cavalier Oleg Level(10,Enemy,True) [20,22] [20,22] [SteelSword,Vulnerary] [NOAI]
UNIT Bandit Cavalier Oleg Level(10,Enemy,True) [22,22] [22,22] [LongSword] [NOAI]
UNIT Bandit Cavalier Oleg Level(11,Enemy,True) [21,20] [21,20] [SteelSpear,Javelin] [NOAI]
UNIT Bandit Cavalier Oleg Level(11,Enemy,True) [18,23] [18,23] [SteelSpear,SteelSword] [NOAI]
UNIT Bandit Cavalier Oleg Level(11,Enemy,True) [20,24] [20,24] [PoisonSpear,Javelin] [NOAI]
//NPC's loaded here
UNIT Karen Myrmidon_F 0x00 Level(1,NPC,False) [12,8] [12,8] [0x00] [GUARD]
UNIT Empty
GoodEM:
UNIT 0x1 0x1 0x0 0x81 [6,21] [6,21] [0x3,0x9,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x2 0x3 0x0 0x79 [6,19] [6,19] [0x1F,0x28,0x26,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x2D 0x2 0x0 0x71 [5,20] [5,20] [0xA,0x3,0x12,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x5 0x13 0x1 0x39 [7,20] [7,20] [0x20,0x28,0x2D,0x0] [0x0,0x0,0x0,0x0]
UNIT 0xE 0x1B 0x0 0x21 [3,21] [3,21] [0x2C,0x2D,0x33,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x16 0x26 0x0 0x19 [4,21] [4,21] [0x44,0x45,0x4A,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x30 0x2A 0x0 0x11 [8,21] [8,21] [0x14,0x3,0x1C,0x1F] [0x0,0x0,0x0,0x0]
UNIT 0x19 0x28 0x0 0x91 [5,22] [5,22] [0x16,0x3,0x1C,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x1B 0x2C 0x0 0x69 [7,22] [7,22] [0x4A,0x4B,0x4D,0x4F] [0x0,0x0,0x0,0x0]
UNIT 0x31 0x32 0x0 0x81 [8,22] [8,22] [0x14,0x16,0x1C,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x23 0x3C 0x0 0x69 [5,23] [5,23] [0x1,0x6A,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x25 0x40 0x0 0x51 [6,23] [6,23] [0x6C,0x6C,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x6 0xE 0x0 0x21 [9,23] [9,23] [0xD,0x1,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT Empty
GoodHM:
UNIT 0x1 0x1 0x0 0x81 [4,21] [4,21] [0x3,0x9,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x2 0x3 0x0 0x79 [6,19] [6,19] [0x1F,0x28,0x26,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x2D 0x2 0x0 0x71 [8,22] [8,22] [0xA,0x3,0x12,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x5 0x13 0x1 0x39 [5,20] [5,20] [0x20,0x28,0x2D,0x0] [0x0,0x0,0x0,0x0]
UNIT 0xE 0x1B 0x0 0x21 [7,20] [7,20] [0x2C,0x2D,0x33,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x16 0x26 0x0 0x19 [9,23] [9,23] [0x44,0x45,0x4A,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x30 0x2A 0x0 0x11 [7,22] [7,22] [0x14,0x3,0x1C,0x1F] [0x0,0x0,0x0,0x0]
UNIT 0x19 0x28 0x0 0x91 [8,21] [8,21] [0x16,0x3,0x1C,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x1B 0x2C 0x0 0x69 [6,21] [6,21] [0x4A,0x4B,0x4D,0x4F] [0x0,0x0,0x0,0x0]
UNIT 0x31 0x32 0x0 0x81 [3,21] [3,21] [0x14,0x16,0x1C,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x23 0x3C 0x0 0x69 [7,24] [7,24] [0x1,0x6A,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT 0x25 0x40 0x0 0x51 [6,23] [6,23] [0x6C,0x6C,0x0,0x0] [0x0,0x0,0x0,0x0]
UNIT Empty
OpeningUnitsGood:
UNIT Eliwood 0x00 0x00 Level(1,Ally,False) [3,25] [4,20] [0x00] [00000000]
UNIT Hector 0x00 0x00 Level(1,Ally,False) [3,25] [3,21] [0x00] [00000000]
UNIT Pent 0x00 0x00 Level(1,Ally,False) [3,25] [6,21] [0x00] [00000000]
UNIT Oswin 0x00 0x00 Level(1,Ally,False) [3,25] [4,22] [0x00] [00000000]
UNIT Raven 0x00 0x00 Level(1,Ally,False) [3,25] [5,22] [0x00] [00000000]
UNIT Nils Bard 0x00 Level(1,NPC,False) [3,25] [2,23] [0x00] [00000000]
UNIT Empty
OpeningUnitsBad:
UNIT Oleg Warrior 0x00 Level(1,Enemy,False) [13,1] [13,1] [0x00] [00000000]
UNIT Bandit Fighter 0x00 Level(11,Enemy,True) [12,2] [12,2] [0x00] [00000000]
UNIT Bandit Fighter 0x00 Level(11,Enemy,True) [14,2] [14,2] [0x00] [00000000]
UNIT Karen Myrmidon_F 0x00 Level(1,NPC,False) [13,3] [13,3] [0x00] [00000000]
UNIT Bandit Fighter 0x00 Level(11,Enemy,True) [13,4] [13,4] [0x00] [00000000]
UNIT Empty
Reinforcements1:
//reinforcements on the stairs
UNIT Bandit Fighter Oleg Level(8,Enemy,True) [6,3] [6,3] [SteelAxe] [NOAI]
UNIT Bandit Fighter Oleg Level(7,Enemy,True) [19,3] [19,3] [IronAxe] [NOAI]
UNIT Bandit Fighter Oleg Level(7,Enemy,True) [24,16] [24,16] [SteelAxe] [NOAI]
UNIT Bandit Fighter Oleg Level(8,Enemy,True) [1,16] [1,16] [IronAxe,HandAxe] [NOAI]
UNIT Bandit Shaman Oleg Level(10,Enemy,True) [12,20] [12,20] [Flux] [NOAI]
UNIT Empty
Reinforcements2:
//reinforcements outside
UNIT Bandit Cavalier Oleg Level(10,Enemy,True) [12,25] [12,25] [SteelSpear] [NOAI]
UNIT Bandit Cavalier Oleg Level(10,Enemy,True) [13,25] [13,25] [SteelSword] [NOAI]
UNIT Bandit Cavalier Oleg Level(9,Enemy,True) [14,25] [14,25] [SteelSword,Javelin] [NOAI]
UNIT Bandit Cavalier Oleg Level(9,Enemy,True) [15,25] [15,25] [SteelSpear,Javelin] [NOAI]
UNIT Bandit Cavalier Oleg Level(9,Enemy,True) [16,25] [16,25] [SteelSpear,SteelSword] [NOAI]
UNIT Empty
Reinforcements3:
//units to take the throne
UNIT Bandit Shaman Oleg Level(14,Enemy,True) [15,0] [13,1] [Nosferatu,Vulnerary] [GUARD]
UNIT Bandit Knight Oleg Level(10,Enemy,True) [11,0] [12,1] [IronSpear,Javelin] [GUARD]
UNIT Bandit Knight Oleg Level(11,Enemy,True) [11,0] [13,2] [KillerLance,Javelin] [GUARD]
UNIT Bandit Knight Oleg Level(10,Enemy,True) [15,0] [14,1] [IronSpear,Javelin] [GUARD]
UNIT Bandit Mage Oleg Level(8,Enemy,True) [11,0] [11,1] [Elfire] [ATRANGE]
UNIT Bandit Mage Oleg Level(9,Enemy,True) [10,0] [10,1] [Thunder] [ATRANGE]
UNIT Bandit Mage Oleg Level(8,Enemy,True) [16,0] [16,1] [Elfire] [ATRANGE]
UNIT Bandit Mage Oleg Level(9,Enemy,True) [15,0] [15,1] [Thunder] [ATRANGE]
UNIT Bandit Bishop Oleg Level(1,Enemy,True) [10,0] [10,0] [Lightning,Sleep] [GUARD]
UNIT Bandit Bishop Oleg Level(1,Enemy,True) [11,0] [11,0] [Lightning,Silence] [GUARD]
UNIT Bandit Bishop Oleg Level(1,Enemy,True) [15,0] [15,0] [Lightning,Sleep] [GUARD]
UNIT Bandit Bishop Oleg Level(1,Enemy,True) [16,0] [16,0] [Lightning,Silence] [GUARD]
UNIT Empty
Turn_events:
TurnEventPlayer(0x00,Opening_event,0)
TurnEventPlayer(0x00,RemoveBlack,1)
TurnEventEnemy(0x00,KarenFinal,1)
TurnEventEnemy(0x00,OlegWalks,5)
TurnEventPlayer(0x00,ThroneReinforcement,6)
TURN 0x0 StairsReinforcement [5,10] 0x00 0x00
TURN 0x0 OutsideReinforcement [6,11] 0x00 0x00
TURN
Character_events:
CHAR 0x15 PentKaren Pent Karen 15
CODE $00000000
Location_events:
//chest location events
Chest(BlueGem,2,6)
Chest(LightBrand,23,6)
Chest(GoddessIcon,3,7)
Chest(EarthSeal,22,7)
Chest(Warp,11,19)
Chest(BodyRing,15,19)
//door locations
Door(2,9)
Door(23,9)
Door(11,17)
Door(14,17)
//horizontal center door
DOOR 0xA CenterDoor [12,5] 0x10
DOOR 0xA CenterDoor [13,5] 0x10
SecretShop(ShopData,2,1)
LOCA
Misc_events:
//Insert Seize the throng condition
CauseGameOverIfLordDies
AFEV
Opening_event:
ALIGN 4 // prevents misalignment from ballista data
BlackOff // custom macro that removes black screen
SHOWMAP
MUS1 0x03B8 //Ambience (Night sounds and breeze)
STAL 60
LOU1 OpeningUnitsGood
ENUN
STAL 60
FADI 16
HIDEMAP
BACG 0x38 //Outside of Castle/Fortress at Night
TEX1 0x134C
FADI 16
HIDEMAP
CMOF //Stops camera from seeing enemy units load
LOU1 OpeningUnitsBad
ENUN
FADU 16
SHOWMAP
CMON //return camera movement
FlashCursor(Oleg,60)
MUS1 0x0052 //What Comes from Darkness
FADI 16
HIDEMAP
BACG 0x3D //inside dungeon night
FADU 16
SHOWMAP
TEX1 0x134D
FADI 16
HIDEMAP
FADU 16
SHOWMAP
MUS1 0x03B8 //Ambience (Night sounds and breeze)
IFEM 0x01
FlashCursor(Eliwood,60)
ELSE 0x02
ENIF 0x01
FlashCursor(Hector,60)
ENIF 0x02
TEX1 0x134E
MUS1 0x0032 //An Unexpected Caller
MORETEXT 1355
UnitClear // custom macro that clears all units from the field
CMOF //Stops camera from seeing enemy units load
LOU1 GoodEM
LOU1 Bad
ENUN
CMON //return camera movement
FADI 16
HIDEMAP
ENDB
RemoveBlack:
BlackOff // custom macro that removes black screen
ENDA
Ending_event:
MUS1 0x0038 //Triumph
STAL 60
FADI 16
HIDEMAP
BACG 0x03 //night village background
FADU 16
SHOWMAP
TEX1 0x1357
FADI 4
HIDEMAP
BACG 0x03 //night village background
FADU 4
SHOWMAP
TEX1 0x1354 //Marcus and Eliwood talk
MORETEXT 0x1353
MUS1 0x0043 //A Knight's Oath
MORETEXT 0x0BFF
FADI 4
HIDEMAP
STAL 60 //stalls the game
BACG 0x4B //Dragon Gate background
MUS1 0x004A //Calamity Bringer: Nergal's Theme
FADU 4
SHOWMAP
TEX1 0x0C02 //Event 8 text
MUS1 0x006C //turns off music
MNCH 0x1C //chapter number of next map
STAL 1
ENDA
PentKaren:
MUS1 0x0042 //TogetherWeRide
TEX1 0x1344
CUSI Karen $00
MURE 5
ENDA
KarenFinal:
FlashCursor(Karen,60)
TEX1 0x1356
ENDA
OlegWalks:
FlashCursor(Oleg,60)
TEX1 0x1362
CHAI Oleg [00000000]
ENDA
BallistaData:
BLST
StairsReinforcement:
ALIGN 4 // prevents misalignment from ballista data
LOU1 Reinforcements1
ENUN
ENDA
OutsideReinforcement:
ALIGN 4 // prevents misalignment from ballista data
LOU1 Reinforcements2
ENUN
ENDA
ThroneReinforcement:
ALIGN 4 // prevents misalignment from ballista data
LOU1 Reinforcements3
ENUN
ENDA
CenterDoor:
MAC1 0x00 0x0 //map change ID 1
ENDA
ShopData:
SHLI Physic Silence Sleep Rescue TorchStaff LockPick Elixir
MESSAGE Events end at offset currentOffset