Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void RandomEncounter()
- {
- mapdata m = Game->LoadMapDat(Game->GetCurMap(), Game->GetCurScreen());
- npcdata e = Game->LoadNPCData(m-Enemy[Rand(10]l
- ffc f = Screen->LoadFFC(32);
- f->Script = Game->GetFFCScript("Battle");
- f->InitD[0] = e;
- f->InitD[1] = m; //for drawing backdrops
- }
- ffc script Battle
- {
- void run(npcdata e, mapdata m)
- {
- bool waiting; int mode; int action;
- while(1)
- {
- // Draw background using 'm'
- // draw npc using 'e'
- // determine e's attacks using it's attributes;
- // draw menus
- // determine who goes first
- mode = Rand(1); //if 1, enemy goes first
- while(mode)
- {
- //do enemy actions
- //Waitframe();
- }
- while(!mode)
- {
- //player actions
- waiting = true;
- while(waiting)
- {
- //do_menus();
- action = BattleMenu();
- Waitframe();
- }
- //resolve stuff this round
- Waitframe();
- }
- }
- }
- // There are certainly other ways to handle these...
- // Vars used by the Tango menu.
- int menuCommand;
- int menuArg;
- //Tango Menu Init
- void SetUpWindow(int slot, int style, int x, int y, int size)
- {
- SetStyleSize(style, size);
- Tango_ClearSlot(slot);
- Tango_SetSlotStyle(slot, style);
- Tango_SetSlotPosition(slot, x, y);
- }
- //Quick way to drop a string into a Tango dialogue box.
- void ShowString(int string, int slot, int style, int x, int y)
- {
- SetUpWindow(slot, style, x, y, SIZE_LARGE);
- Tango_LoadString(slot, string);
- Tango_ActivateSlot(slot);
- while(Tango_SlotIsActive(slot))
- Waitframe();
- }
- //The 'yes/no' menu called by the ffc.
- int BattleMenu() {
- int lineBreak[]="@26";
- int line1[]="@choice(1)Attack@tab(40)@choice(2)Spell@26";
- int line2[]="@choice(3)Item@tab(40)@choice(4)Item@domenu(1)@suspend()";
- SetUpWindow(WINDOW_SLOT_1, WINDOW_STYLE_3, 32, 32, SIZE_LARGE);
- Tango_LoadString(WINDOW_SLOT_1, line1);
- Tango_AppendString(WINDOW_SLOT_1, line2);
- Tango_ActivateSlot(WINDOW_SLOT_1);
- while(!Tango_MenuIsActive()){
- Waitframe();
- }
- // Save the state again...
- int slotState[278];
- int menuState[960];
- int cursorPos;
- Tango_SaveSlotState(WINDOW_SLOT_1, slotState);
- Tango_SaveMenuState(menuState);
- int done = 0;
- int choice;
- while(true){
- while( Tango_MenuIsActive() ) {
- cursorPos=Tango_GetMenuCursorPosition();
- Waitframe();
- }
- choice = Tango_GetLastMenuChoice();
- if ( choice == 1 ) { // Item Info
- int text[256];
- Game->GetMessage(msg,text); //Load msg into the buffer.
- ShowString(text, WINDOW_SLOT_2, WINDOW_STYLE_3, 48, 48);
- }
- else if ( choice == 2 ) { //Buy
- done = choice;
- menuArg = choice;
- }
- else if ( choice == 3 ) { //Cancel
- done = choice;
- }
- else if ( Link->PressEx1 ) {
- done = 1;
- }
- else done = 3;
- if ( done ) {
- break;
- // return choice;
- }
- else {
- Tango_RestoreSlotState(WINDOW_SLOT_1, slotState);
- Tango_RestoreMenuState(menuState);
- Tango_SetMenuCursorPosition(cursorPos);
- }
- }
- Tango_ClearSlot(WINDOW_SLOT_1);
- return done;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement