w of the dueck

Here is the collection of files that have been altered so far.
Changes made:
' [ ' is an additional zoom in/zoom out key.
Ctrl + Arrow keys introduced for loading previous/next town and for outdoor zones above/below/left/right.
Added a comment about which Ctrl + Letter shortcuts were still available.
Town menu was rearranged.
Graying out of menus has been updated.
Version date is now shown in the Help > About Blades Scenario Editor dialog.
Three new hotkeys: "^A", 213, ASCII,  "^B", 214, ASCII,   "^V", 312, ASCII
New scenario object write up: BoE Scenario Object data.txt

regards

Ishad Nha


git-svn-id: http://openexile.googlecode.com/svn/trunk@129 4ebdad44-0ea0-11de-aab3-ff745001d230
This commit is contained in:
Sylae Corell
2009-09-24 19:19:48 +00:00
parent 1f4d01118c
commit 72e165c557
5 changed files with 204 additions and 68 deletions

View File

@@ -6,8 +6,6 @@
#include "string.h" #include "string.h"
#include "stdio.h" #include "stdio.h"
#include "math.h" #include "math.h"
#include "Global.h" #include "Global.h"
#include "graphics.h" #include "graphics.h"
#include "tactions.h" #include "tactions.h"
@@ -87,7 +85,7 @@ Boolean editing_town = FALSE;
short town_type = 0; // 0 - big 1 - ave 2 - small short town_type = 0; // 0 - big 1 - ave 2 - small
char szWinName[] = "BoE for Win32 dialogs"; char szWinName[] = "BoE for Win32 dialogs";
char szAppName[] = "Classic BoE Scenario Editor"; char szAppName[] = "Classic BoE Scenario Editor";
extern void object_scenario_data_dump();
char szBladBase[128]; char szBladBase[128];
void loadSettingsFromFile() void loadSettingsFromFile()
@@ -721,6 +719,14 @@ Boolean handle_menu (short item, HMENU menu)
case 304: frill_up_terrain(); break; case 304: frill_up_terrain(); break;
case 305: unfrill_terrain(); break; case 305: unfrill_terrain(); break;
case 306: edit_out_strs(); break; case 306: edit_out_strs(); break;
case 307: if (fancy_choice_dialog(875,0) == 2) // clear all special encounters
break;
for (i = 0; i < 18; i++) {
current_terrain.special_locs[i].x = 100;
current_terrain.special_locs[i].y = 0;
current_terrain.special_id[i] = 255;
}
case 311: case 311:
lpsi.fMask = SIF_POS; lpsi.fMask = SIF_POS;
lpsi.nPos = 0; lpsi.nPos = 0;
@@ -733,13 +739,6 @@ Boolean handle_menu (short item, HMENU menu)
SetScrollInfo(right_sbar,SB_CTL,&lpsi,TRUE); SetScrollInfo(right_sbar,SB_CTL,&lpsi,TRUE);
//SetScrollPos(right_sbar,SB_CTL,0,TRUE); //SetScrollPos(right_sbar,SB_CTL,0,TRUE);
start_string_editing(1,0); break; start_string_editing(1,0); break;
case 313: if (fancy_choice_dialog(875,0) == 2) // clear all special encounters
break;
for (i = 0; i < 18; i++) {
current_terrain.special_locs[i].x = 100;
current_terrain.special_locs[i].y = 0;
current_terrain.special_id[i] = 255;
}
break; break;
case 401: case 401:
@@ -874,6 +873,48 @@ Boolean handle_menu (short item, HMENU menu)
} }
break; break;
case 412: // load outdoor zone above
if (editing_town)
break;
if (cur_out.y > 0) {
x = cur_out.x;
y = cur_out.y - 1;
}
else {
x = cur_out.x;
y = scenario.out_height - 1;
}
spot_hit.x = x;
spot_hit.y = y;
load_outdoors(spot_hit,0);
augment_terrain(spot_hit);
start_out_edit();
break;
case 413: // load outdoor zone below
if (editing_town)
break;
if (cur_out.y == scenario.out_height - 1) {
x = cur_out.x;
y = 0;
}
else {
x = cur_out.x;
y = cur_out.y + 1;
}
spot_hit.x = x;
spot_hit.y = y;
load_outdoors(spot_hit,0);
augment_terrain(spot_hit);
start_out_edit();
break;
case 414:
if (fancy_choice_dialog(878,0) == 1)
object_scenario_data_dump();
break;
// Extra Help // Extra Help
case 801: // help file case 801: // help file
WinHelp(mainPtr,"Scenario Editor.hlp",HELP_CONTENTS,0L); WinHelp(mainPtr,"Scenario Editor.hlp",HELP_CONTENTS,0L);

View File

@@ -71,17 +71,17 @@ Exile MENU
MENUITEM "Set All Items Not Property", 209 MENUITEM "Set All Items Not Property", 209
MENUITEM "Clear All Items", 210 MENUITEM "Clear All Items", 210
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "Clear All Monsters", 217
MENUITEM "Clear All Placed Specials", 218
MENUITEM "Clear All Preset Fields", 219
MENUITEM "Clear All Stains", 220
MENUITEM SEPARATOR
MENUITEM "Advanced:", 212 MENUITEM "Advanced:", 212
MENUITEM " Edit Special Nodes", 213 MENUITEM " Edit Special Nodes\tCtrl+A", 213
MENUITEM " Edit Town Text", 214 MENUITEM " Edit Town Text\tCtrl+B", 214
MENUITEM " Advanced Town Details", 215 MENUITEM " Advanced Town Details", 215
MENUITEM " Set Town Event Timers", 216 MENUITEM " Set Town Event Timers", 216
MENUITEM " Concise Town Report",221 MENUITEM " Concise Town Report",221
MENUITEM SEPARATOR
MENUITEM " Clear All Monsters", 217
MENUITEM " Clear All Placed Specials", 218
MENUITEM " Clear All Preset Fields", 219
MENUITEM " Clear All Stains", 220
} }
POPUP "&Outdoors" POPUP "&Outdoors"
@@ -92,11 +92,11 @@ Exile MENU
MENUITEM "Frill Up Terrain", 304 MENUITEM "Frill Up Terrain", 304
MENUITEM "Remove Terrain Frills", 305 MENUITEM "Remove Terrain Frills", 305
MENUITEM "Edit Area Descriptions", 306 MENUITEM "Edit Area Descriptions", 306
MENUITEM "Clear All Placed Specials", 307
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "Advanced:", 310 MENUITEM "Advanced:", 310
MENUITEM " Edit Special Nodes\tCtrl+U", 311 MENUITEM " Edit Special Nodes\tCtrl+U", 311
MENUITEM " Edit Outdoor Text", 312 MENUITEM " Edit Outdoor Text\tCtrl+V", 312
MENUITEM " Delete All Placed Specials", 313
} }
POPUP "&Additional Features" POPUP "&Additional Features"
@@ -115,7 +115,8 @@ Exile MENU
MENUITEM "Switch Viewing Mode\tCtrl+I", 408 MENUITEM "Switch Viewing Mode\tCtrl+I", 408
MENUITEM "Load Previous Outdoor Zone/Town\tCtrl+J", 409 MENUITEM "Load Previous Outdoor Zone/Town\tCtrl+J", 409
MENUITEM "Load Next Outdoor Zone/Town\tCtrl+K", 410 MENUITEM "Load Next Outdoor Zone/Town\tCtrl+K", 410
MENUITEM SEPARATOR
MENUITEM "Scenario Object Data Dump", 414
} }
POPUP "&I1" POPUP "&I1"
@@ -209,7 +210,10 @@ ACCELERATORS_1 ACCELERATORS
"^S", 2, ASCII "^S", 2, ASCII
"^N", 3, ASCII "^N", 3, ASCII
"^Q", 5, ASCII "^Q", 5, ASCII
"^A", 213, ASCII
"^B", 214, ASCII
"^U", 311, ASCII "^U", 311, ASCII
"^V", 312, ASCII
"^T", 401, ASCII "^T", 401, ASCII
"^R", 402, ASCII "^R", 402, ASCII
"^L", 403, ASCII "^L", 403, ASCII
@@ -220,6 +224,15 @@ ACCELERATORS_1 ACCELERATORS
"^I", 408, ASCII "^I", 408, ASCII
"^J", 409, ASCII "^J", 409, ASCII
"^K", 410, ASCII "^K", 410, ASCII
VK_TAB, 408, VIRTKEY, CONTROL, NOINVERT
VK_LEFT, 409, VIRTKEY, CONTROL, NOINVERT
VK_RIGHT, 410, VIRTKEY, CONTROL, NOINVERT
VK_UP, 412, VIRTKEY, CONTROL, NOINVERT
VK_DOWN, 413, VIRTKEY, CONTROL, NOINVERT
// Defined elsewhere: D,L
// Keys currently available: C,H,P,W,X,Y,Z
} }
1 WAVE "snd0.wav" 1 WAVE "snd0.wav"

View File

@@ -1883,6 +1883,16 @@ STYLE WS_POPUP | WS_DLGFRAME
LTEXT "It includes the locations and text strings too.", 5, 49, 95, 271, 29 LTEXT "It includes the locations and text strings too.", 5, 49, 95, 271, 29
} }
878 DIALOG 10, 10, 356, 154
STYLE WS_POPUP | WS_DLGFRAME
{
LTEXT "1_63", 1, 254, 129, 66, 20
LTEXT "0_5", 2, 189, 129, 65, 20
LTEXT "5_716", 3, 6, 6, 36, 36
LTEXT "This creates a list of all the item placement shortcuts and specials in the scenario. Information is placed in a file called 'BoE Scenario Object data.txt' in the editor folder.", 4, 49, 6, 271, 66
LTEXT "A list of the Special Items is included.", 5, 49, 95, 271, 29
}
890 DIALOG 10, 10, 357, 114 890 DIALOG 10, 10, 357, 114
STYLE WS_POPUP | WS_DLGFRAME STYLE WS_POPUP | WS_DLGFRAME
{ {
@@ -1977,7 +1987,7 @@ STYLE WS_POPUP | WS_DLGFRAME
{ {
LTEXT "1_63", 1, 435, 295, 61, 20 LTEXT "1_63", 1, 435, 295, 61, 20
LTEXT "5_716", 2, 6, 6, 36, 36 LTEXT "5_716", 2, 6, 6, 36, 36
LTEXT "Classic Blades of Exile Scenario Editor version 1.0 | Copyright 1997, Spiderweb Software, Inc., All rights reserved.||Blades of Exile is distributed for free under GNU General Public License version 2.", 3, 50, 6, 420, 33 LTEXT "Classic Blades of Exile Scenario Editor version 23.09.2009 | Copyright 1997, Spiderweb Software, Inc., All rights reserved.||Blades of Exile is distributed for free under GNU General Public License version 2.", 3, 50, 6, 420, 33
LTEXT "CREDITS : Initial coding/32-bit porting by Ormus . Aesthetic touches by Ishad Nha.", 4, 50, 227, 424, 33 LTEXT "CREDITS : Initial coding/32-bit porting by Ormus . Aesthetic touches by Ishad Nha.", 4, 50, 227, 424, 33
LTEXT "Comments? Questions? Bugs? Post them at the Blades section of the Irony Central Board: www.ironycentral.com/forum/", 5, 50, 271, 354, 32 LTEXT "Comments? Questions? Bugs? Post them at the Blades section of the Irony Central Board: www.ironycentral.com/forum/", 5, 50, 271, 354, 32
LTEXT "Blades of Exile was brought to you by Spiderweb Software - | _Where our aberrations become your reality._ |_Blades of Exile_ and Spiderweb Software are trademarks of Spiderweb Software.", 7, 50, 154, 410, 51 LTEXT "Blades of Exile was brought to you by Spiderweb Software - | _Where our aberrations become your reality._ |_Blades of Exile_ and Spiderweb Software are trademarks of Spiderweb Software.", 7, 50, 154, 410, 51

View File

@@ -1308,7 +1308,7 @@ Boolean handle_keystroke(WPARAM wParam, LPARAM lParam)
are_done = handle_action(pass_point,wParam,-1); are_done = handle_action(pass_point,wParam,-1);
break; break;
case'I': case'I': case'[':
pass_point.x = RIGHT_AREA_UL_X + 6 + palette_buttons[0][1].left; pass_point.x = RIGHT_AREA_UL_X + 6 + palette_buttons[0][1].left;
pass_point.y = RIGHT_AREA_UL_Y + 6 + terrain_rects[255].bottom + palette_buttons[0][1].top; pass_point.y = RIGHT_AREA_UL_Y + 6 + terrain_rects[255].bottom + palette_buttons[0][1].top;
are_done = handle_action(pass_point,wParam,-1); are_done = handle_action(pass_point,wParam,-1);
@@ -3339,22 +3339,20 @@ void shut_down_menus(short mode)
{ {
HMENU menu; HMENU menu;
short i; short i;
short scen_items[20] = {101,103,104,105,106, 109,110,112,113,114, 115,116,117,118,119, 120,111,121,122,123};
short town_items[17] = {201,202,203,204,205, 206,208,209,210,213, 214,215,216, 217,218,219,220};
short out_items[10] = {301,302,303,304,305,306,308,311,312,313};
menu = GetMenu(mainPtr); menu = GetMenu(mainPtr);
//menu[i] = GetSubMenu(big_menu,5 + i); //menu[i] = GetSubMenu(big_menu,5 + i);
if (mode == 0) { if (mode == 0) {
EnableMenuItem(menu,2,MF_GRAYED | MF_BYCOMMAND); // Item 2 is Save Scenario
for (i = 0; i < 20; i++) EnableMenuItem(menu,2,MF_GRAYED | MF_BYCOMMAND);
EnableMenuItem(menu,scen_items[i],MF_GRAYED | MF_BYCOMMAND); for (i = 101; i < 124; i++)
for (i = 0; i < 17; i++) EnableMenuItem(menu,i,MF_GRAYED | MF_BYCOMMAND);
EnableMenuItem(menu,town_items[i],MF_GRAYED | MF_BYCOMMAND); for (i = 201; i < 222; i++)
for (i = 0; i < 10; i++) EnableMenuItem(menu,i,MF_GRAYED | MF_BYCOMMAND);
EnableMenuItem(menu,out_items[i],MF_GRAYED | MF_BYCOMMAND); for (i = 301; i < 314; i++)
for (i = 0; i < 10; i++) EnableMenuItem(menu,i,MF_GRAYED | MF_BYCOMMAND);
EnableMenuItem(menu,401+i,MF_GRAYED | MF_BYCOMMAND); for (i = 401; i < 415; i++)
EnableMenuItem(menu,i,MF_GRAYED | MF_BYCOMMAND);
//for (i = 600; i < 1000; i++) { //for (i = 600; i < 1000; i++) {
// EnableMenuItem(menu,i,MF_GRAYED | MF_BYCOMMAND); // EnableMenuItem(menu,i,MF_GRAYED | MF_BYCOMMAND);
// } // }
@@ -3362,40 +3360,42 @@ void shut_down_menus(short mode)
// EnableMenuItem(menu,i,MF_GRAYED | MF_BYCOMMAND); // EnableMenuItem(menu,i,MF_GRAYED | MF_BYCOMMAND);
// } // }
} }
if ((mode == 1) || (mode == 3)) {
for (i = 201; i < 212; i++)
EnableMenuItem(menu,i,MF_GRAYED | MF_BYCOMMAND);
for (i = 217; i < 221; i++)
EnableMenuItem(menu,i,MF_GRAYED | MF_BYCOMMAND);
//for (i = 600; i < 1000; i++) {
// EnableMenuItem(menu,i,MF_GRAYED | MF_BYCOMMAND);
// }
//for (i = 1000; i < 1256; i++) {
// EnableMenuItem(menu,i,MF_GRAYED | MF_BYCOMMAND);
// }
}
if ((mode == 2) || (mode == 3)) {
for (i = 301; i < 308; i++)
EnableMenuItem(menu,i,MF_GRAYED | MF_BYCOMMAND);
}
if (mode == 4) { if (mode == 4) {
EnableMenuItem(menu,1,MF_ENABLED | MF_BYCOMMAND); for (i = 1; i < 6; i++)
EnableMenuItem(menu,2,MF_ENABLED | MF_BYCOMMAND); EnableMenuItem(menu,i,MF_ENABLED | MF_BYCOMMAND);
EnableMenuItem(menu,3,MF_ENABLED | MF_BYCOMMAND); for (i = 101; i < 124; i++)
EnableMenuItem(menu,5,MF_ENABLED | MF_BYCOMMAND); EnableMenuItem(menu,i,MF_ENABLED | MF_BYCOMMAND);
for (i = 0; i < 20; i++) for (i = 201; i < 222; i++)
EnableMenuItem(menu,scen_items[i],MF_ENABLED | MF_BYCOMMAND); EnableMenuItem(menu,i,MF_ENABLED | MF_BYCOMMAND);
for (i = 0; i < 17; i++) for (i = 301; i < 314; i++)
EnableMenuItem(menu,town_items[i],MF_ENABLED | MF_BYCOMMAND); EnableMenuItem(menu,i,MF_ENABLED | MF_BYCOMMAND);
for (i = 0; i < 10; i++) for (i = 401; i < 415; i++)
EnableMenuItem(menu,out_items[i],MF_ENABLED | MF_BYCOMMAND); EnableMenuItem(menu,i,MF_ENABLED | MF_BYCOMMAND);
for (i = 0; i < 10; i++)
EnableMenuItem(menu,401+i,MF_ENABLED | MF_BYCOMMAND);
//for (i = 600; i < 1000; i++) { //for (i = 600; i < 1000; i++) {
// EnableMenuItem(menu,i,MF_ENABLED | MF_BYCOMMAND); // EnableMenuItem(menu,i,MF_ENABLED | MF_BYCOMMAND);
// } // }
//for (i = 1000; i < 1256; i++) { //for (i = 1000; i < 1256; i++) {
// EnableMenuItem(menu,i,MF_ENABLED | MF_BYCOMMAND); // EnableMenuItem(menu,i,MF_ENABLED | MF_BYCOMMAND);
// } // }
}
if ((mode == 1) || (mode == 3)) {
for (i = 0; i < 9; i++)
EnableMenuItem(menu,town_items[i],MF_GRAYED | MF_BYCOMMAND);
//for (i = 600; i < 1000; i++) {
// EnableMenuItem(menu,i,MF_GRAYED | MF_BYCOMMAND);
// }
//for (i = 1000; i < 1256; i++) {
// EnableMenuItem(menu,i,MF_GRAYED | MF_BYCOMMAND);
// }
}
if ((mode == 2) || (mode == 3)) {
for (i = 0; i < 7; i++)
EnableMenuItem(menu,out_items[i],MF_GRAYED | MF_BYCOMMAND);
} }
} }

View File

@@ -51,6 +51,8 @@ Boolean cur_scen_is_win = TRUE;
talking_record_type *dummy_talk_ptr; talking_record_type *dummy_talk_ptr;
town_record_type *dummy_town_ptr; town_record_type *dummy_town_ptr;
extern char file_path_name[256]; extern char file_path_name[256];
void object_scenario_data_dump();
extern item_storage_shortcut_type store_storage;
// Big waste! // Big waste!
char last_load_file[63] = "newscen.exs"; char last_load_file[63] = "newscen.exs";
@@ -1240,7 +1242,7 @@ void start_town_data_dump()
WriteFile(data_dump_file_id, get_text,strlen(get_text),&dwByteRead,NULL); WriteFile(data_dump_file_id, get_text,strlen(get_text),&dwByteRead,NULL);
for (i = 0; i < 50; i++) { for (i = 0; i < 50; i++) {
if (town.spec_id[i] < 255){ if ((town.specials[i].type > 0) || (town.specials[i].jumpto >= 0)) {
get_str(spec_name,22,town.specials[town.spec_id[i]].type + 1); get_str(spec_name,22,town.specials[town.spec_id[i]].type + 1);
sprintf(get_text," Placed special %d: x = %d, y = %d, state = %d, name = %s\r",i,town.special_locs[i].x,town.special_locs[i].y,town.spec_id[i],spec_name); sprintf(get_text," Placed special %d: x = %d, y = %d, state = %d, name = %s\r",i,town.special_locs[i].x,town.special_locs[i].y,town.spec_id[i],spec_name);
WriteFile(data_dump_file_id, get_text,strlen(get_text),&dwByteRead,NULL); WriteFile(data_dump_file_id, get_text,strlen(get_text),&dwByteRead,NULL);
@@ -1311,7 +1313,7 @@ void start_town_data_dump()
sprintf(get_text,"\r\r Town Special Nodes: [100]\r"); sprintf(get_text,"\r\r Town Special Nodes: [100]\r");
WriteFile(data_dump_file_id, get_text,strlen(get_text),&dwByteRead,NULL); WriteFile(data_dump_file_id, get_text,strlen(get_text),&dwByteRead,NULL);
for (i = 0; i < 100; i++) { for (i = 0; i < 100; i++) {
if (town.specials[i].type > 0) { if ((town.specials[i].type > 0) || (town.specials[i].jumpto >= 0)) {
get_str(spec_name,22,town.specials[i].type + 1); get_str(spec_name,22,town.specials[i].type + 1);
sprintf(get_text," Town special %d: Type = %d, SD1 = %d, SD2 = %d, Pic = %d, M1 = %d, M2 = %d, Ex1a = %d, Ex1b = %d, Ex2a = %d, Ex2b = %d, JumpTo = %d, Name = %s\r",i,town.specials[i].type,town.specials[i].sd1,town.specials[i].sd2,town.specials[i].pic,town.specials[i].m1,town.specials[i].m2,town.specials[i].ex1a,town.specials[i].ex1b,town.specials[i].ex2a,town.specials[i].ex2b,town.specials[i].jumpto,spec_name); sprintf(get_text," Town special %d: Type = %d, SD1 = %d, SD2 = %d, Pic = %d, M1 = %d, M2 = %d, Ex1a = %d, Ex1b = %d, Ex2a = %d, Ex2b = %d, JumpTo = %d, Name = %s\r",i,town.specials[i].type,town.specials[i].sd1,town.specials[i].sd2,town.specials[i].pic,town.specials[i].m1,town.specials[i].m2,town.specials[i].ex1a,town.specials[i].ex1b,town.specials[i].ex2a,town.specials[i].ex2b,town.specials[i].jumpto,spec_name);
WriteFile(data_dump_file_id, get_text,strlen(get_text),&dwByteRead,NULL); WriteFile(data_dump_file_id, get_text,strlen(get_text),&dwByteRead,NULL);
@@ -1323,6 +1325,76 @@ void start_town_data_dump()
CloseHandle(data_dump_file_id); CloseHandle(data_dump_file_id);
} }
void object_scenario_data_dump()
{
short i,j;
char get_text[280], spec_name[256];
HANDLE data_dump_file_id;
DWORD dwByteRead;
data_dump_file_id = CreateFile("BoE Scenario Object data.txt", GENERIC_WRITE, FILE_SHARE_READ, NULL,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (data_dump_file_id == INVALID_HANDLE_VALUE)
{
oops_error(28);
beep();
return;
}
sprintf(get_text,"\n\nConcise Scenario Object Data Printout for %s\n\n",scen_strs[0]);
WriteFile(data_dump_file_id, get_text,strlen(get_text),&dwByteRead,NULL);
sprintf(get_text," For rectangles: \"tl\" = the top and left corner of the rectangle while \"br\" = the bottom and right corner.\n\n Maximum number of any given type of town object is shown by \"[ # ]\".\n Null objects are frequently not listed.\n\n");
WriteFile(data_dump_file_id, get_text,strlen(get_text),&dwByteRead,NULL);
sprintf(get_text,"The Special Items [50]\n Special Item Properties: A value of 1 means that the Special Item can be used,\n while a value of 10 means that the party starts the scenario with the item. \n A value of 11 means that it can be used and the party starts with it.\n\n");
WriteFile(data_dump_file_id, get_text,strlen(get_text),&dwByteRead,NULL);
for (short i = 0; i < 50; i++) {
sprintf(get_text,"Special Item %d: Scenario Special Called = %d, Properties = %d, Name = \"%s\"\n",i,scenario.special_item_special[i],scenario.special_items[i],scen_strs[60 + i * 2]);
WriteFile(data_dump_file_id, get_text,strlen(get_text),&dwByteRead,NULL);
}
sprintf(get_text,"\n\nItem Storage Shortcuts [10]\n");
WriteFile(data_dump_file_id, get_text,strlen(get_text),&dwByteRead,NULL);
for (short i = 0; i < 10; i++) {
sprintf(get_text,"Shortcut %d: All Items Property = %d, Terrain type = %d, Name = %s\n",i,scenario.storage_shortcuts[i].property,scenario.storage_shortcuts[i].ter_type,scen_item_list.ter_names[scenario.storage_shortcuts[i].ter_type]);
WriteFile(data_dump_file_id, get_text,strlen(get_text),&dwByteRead,NULL);
}
sprintf(get_text,"\n\n Scenario Horse Records: [30]\n");
WriteFile(data_dump_file_id, get_text,strlen(get_text),&dwByteRead,NULL);
for (short i = 0; i < 30; i++) {
if (scenario.scen_horses[i].which_town >= 0) {
sprintf(get_text," Scenario Horse %d: Town = %d, X = %d, Y = %d, Property = %d\n",i,scenario.scen_horses[i].which_town,scenario.scen_horses[i].horse_loc.x,scenario.scen_horses[i].horse_loc.y,scenario.scen_horses[i].property);
WriteFile(data_dump_file_id, get_text,strlen(get_text),&dwByteRead,NULL);
}
}
sprintf(get_text,"\n\n Scenario Boat Records: [30]\n");
WriteFile(data_dump_file_id, get_text,strlen(get_text),&dwByteRead,NULL);
for (short i = 0; i < 30; i++) {
if (scenario.scen_boats[i].which_town >= 0) {
sprintf(get_text," Scenario Boat %d: Town = %d, X = %d, Y = %d, Property = %d\n",i,scenario.scen_boats[i].which_town,scenario.scen_boats[i].boat_loc.x,scenario.scen_boats[i].boat_loc.y,scenario.scen_boats[i].property);
WriteFile(data_dump_file_id, get_text,strlen(get_text),&dwByteRead,NULL);
}
}
sprintf(get_text,"\n\n Scenario Special Nodes: [256]\n");
WriteFile(data_dump_file_id, get_text,strlen(get_text),&dwByteRead,NULL);
for (short i = 0; i < 256; i++) {
if ((scenario.scen_specials[i].type > 0) || (scenario.scen_specials[i].jumpto >= 0)) {
get_str(spec_name,22,town.specials[i].type + 1);
sprintf(get_text," Scenario special %d: Type = %d, SD1 = %d, SD2 = %d, Pic = %d, M1 = %d, M2 = %d, Ex1a = %d, Ex1b = %d, Ex2a = %d, Ex2b = %d, JumpTo = %d, Name = %s\n",i,scenario.scen_specials[i].type,scenario.scen_specials[i].sd1,scenario.scen_specials[i].sd2,scenario.scen_specials[i].pic,scenario.scen_specials[i].m1,scenario.scen_specials[i].m2,scenario.scen_specials[i].ex1a,scenario.scen_specials[i].ex1b,scenario.scen_specials[i].ex2a,scenario.scen_specials[i].ex2b,scenario.scen_specials[i].jumpto,spec_name);
WriteFile(data_dump_file_id, get_text,strlen(get_text),&dwByteRead,NULL);
}
}
sprintf(get_text,"\n\n");
WriteFile(data_dump_file_id, get_text,strlen(get_text),&dwByteRead,NULL);
CloseHandle(data_dump_file_id);
}
void start_data_dump() void start_data_dump()
{ {
short i,j,last_town = cur_town; short i,j,last_town = cur_town;