[FE7] Disable Skipping a Section of Events

#define PreventSkipping "_0x87"
#define EnableSkipping "_0x89"

A quick search didn’t turn up anything, so here’s something I stumbled upon. Say you want to have a section of events that you cannot press Start to skip. Just do:

// stuff
PreventSkipping
// Your really neat scene goes here
EnableSkipping
// stuff

If ‘PreventSkipping’ is in the middle of a scene, and you press Start at the beginning, the game will jump to where you disabled skipping and go from there.

Huh, but the EA doc I have says 0x89 is for disabling Start and 0x8A is for enabling B/Start.

From the most recent version of EA’s language raws that I bunched together a while back:
##Makes the B button locked (not able to be used to skip convos?)
LCKB, 0x87, 4, -game:FE7 -indexMode:8

##Makes the start button locked
LCKS, 0x89, 4, -game:FE7 -indexMode:8

##Unlocks the B and start button.
ULCK, 0x8A, 4, -game:FE7 -indexMode:8

##Makes player unable to use start to skip the event.
NEVENTS, 0x8C, 4, -game:FE7 -indexMode:8

#Alias
NSSP, 0x8C, 4, -game:FE7 -indexMode:8

##Makes player unable to skip convo with B button.
NCONVOS, 0x8D, 4, -game:FE7 -indexMode:8

#Alias

NCSP, 0x8D, 4, -game:FE7 -indexMode:8

The ending event in this test code I’ve been using (which is a copy/paste from the last bit of Cog of Destiny) fairly clearly demonstrates that _0x87 prevents the player from skipping Eliwood’s forced promotion, then re-enables the Start button after he has promoted (by using _0x89).

[spoiler=Test Code]
#define DISABLE_TUTORIALS
#include EAstdlib.event

EventPointerTable(0x06,Pointers)

ORG 0x0A06D0
BYTE 0x02 0x25 // Force Eliwood mode

ORG 0x0A0748
BYTE 0x01

ORG 0xD00000
Pointers:
POIN Turn_events
POIN Character_events
POIN Location_events
POIN Misc_events
POIN TrapData TrapData
POIN Bad Bad Bad Bad
POIN Good Good Good Good
POIN Opening_event Ending_event

Bad:
UNIT 0xA0 General 0x00 Level(5,Enemy,0) [04,04] [04,04] [IronSpear] Guard
UNIT Batta Druid Glass Level(10,Enemy,0) [08,07] [08,07] [Flux] Guard
UNIT

Good:
UNIT Eliwood EliwoodLord 0x00 Level(10,Ally,True) [3,3] [3,3] [Rapier, KillingEdge, BodyRing, Elixir] NoAI
UNIT Lyn_t LynLord Eliwood Level(10,Ally,True) [12,06] [12,06] [ManiKatti,EmblemSword,Elixir] NoAI
UNIT

Turn_events:
OpeningTurnEvent(Opening_event)
END_MAIN

Character_events:
END_MAIN

Location_events:
Seize(03,02)
END_MAIN

Misc_events:
CauseGameOverIfLordDies
END_MAIN

Opening_event:
OOBB
LOU1 Good
ENUN
STAL 16
LOU1 Bad
ENUN
ENDA

Ending_event:
MUS1 Triumph
TEX1 0xDEF
MUEN 6
FADI 4
HIDEMAP
STAL 120
_0x87 // Disable Start
BACG 0x1C
FADU 4
SHOWMAP
CAM1 0x1
MUS1 0x3A4
IFET 0x2D 0x87
TEXTIFEM 0xDF0 0xDF3
ELSE 0x2E
ENIF 0x2D
TEXTIFEM 0xDF1 0xDF4
ENIF 0x2E
REMA
MUEN 8
STAL 130
MUS1 0x0
_0x95 0x80 0x2 0x7FFF
HIDEMAP
_0x96 0x80 0x2 0x7FFF
SHOWMAP
ASMC 0x79AF5 // Promote main lord
STAL 1250
_0x89 // Re-enable Start
MUEN 1
IFEM 0x33
FADI 16
HIDEMAP
BACG 0x1C
MUS1 0x3D
FADU 16
SHOWMAP
ELSE 0x34
ENIF 0x33
FADI 16
HIDEMAP
BACG 0x1C
MUS1 0x3E
FADU 16
SHOWMAP
ENIF 0x34
TEXTIFEM 0xDF2 0xDF5
IFEM 0x30
MoveToChapter(0x01)
ENDA

TrapData:
ENDTRAP

MESSAGE Events end at offset currentOffset
//The map for this chapter is at offset: ???
[/spoiler]

However, I will say I misspoke about the B button being usable. It isn’t.