Classic BoE maintenance release :

Classic Blades of Exile :

- Fixed a compatibility breaking issue concerning Show/hide town nodes.
  Such nodes work the same way it were (i.e flawed) in legacy scenarios, fixing problems about towns that should appear but don't.
- Petrifying touch ability acts again as Disease touch in legacy scenarios, preventing the "vorpal cockroach" syndrom.


Classic Scenario Editor :

Two new working fields in the Scenario Details dialog :

- Minimum version, which is unused for now (it represents the minimum version of the game that is needed to play the scenario)
- Program Make Version (not to confuse with Scenario Version), which is the version of the scenario "format" to use :
	- first number is the major version : set to 1 for legacy scenario, hence forcing legacy compatibility.
	  Anything higher is "new scenario" format and makes the game use fixed features.
	- the two next numbers are unused for now.

Chokboyz

git-svn-id: http://openexile.googlecode.com/svn/trunk@157 4ebdad44-0ea0-11de-aab3-ff745001d230
This commit is contained in:
Chokboyz
2010-09-27 00:51:10 +00:00
parent 1bfb19304c
commit d83aa6b55c
12 changed files with 188 additions and 175 deletions

View File

@@ -1168,7 +1168,7 @@ STYLE WS_POPUP | WS_DLGFRAME
{
LTEXT "1_63", 1, 435, 295, 61, 20
LTEXT "5_716", 2, 6, 6, 36, 36
LTEXT "Classic Blades of Exile build_26.05.2010 | 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 build_27.09.2010 | 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 "CONTRIBUTORS : Ormus, Ishad Nha, Celtic Minstrel, Niemand and all involved in the BoE community.", 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 "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

@@ -1836,8 +1836,9 @@ Boolean handle_keystroke(WPARAM wParam, LPARAM lParam)
// case 'P': repeat Priest spell
case 'I': //debug info
char buf[256]; //event timer off debug info
sprintf(buf,"Party Age : %d, Ctown ploc : x = %d, y = %d", party.age, center.x, center.y);
//sprintf(buf,"Party Age : %d, Ctown ploc : x = %d, y = %d", party.age, center.x, center.y);
// sprintf(buf,"Town chop time : %d, chop key : %d",c_town.town.town_chop_time, c_town.town.town_chop_key);
sprintf(buf,"Scenario prog version %d %d %d", scenario.prog_make_ver[0], scenario.prog_make_ver[1], scenario.prog_make_ver[2]);
give_error(buf,"",0);
break;
case 'Q': // Magic map

View File

@@ -1210,7 +1210,7 @@ void load_town(short town_num,short mode,short extra,char *str)
port_town(0);
if(PSD[SDF_LEGACY_SCENARIO] == 0)
c_town.difficulty = c_town.town.difficulty;
else//legacy no difficulty setting case
else//legacy, no difficulty setting case
c_town.difficulty = 0;
}
else ReadFile(file_id, &dummy_town, sizeof(town_record_type), &dwBytesRead, NULL);

View File

@@ -176,7 +176,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR, int nCmd
RegisterClass(&wndclass2);
mainPtr = CreateWindow (szAppName, "Classic Blades of Exile build_26.05.2010",
mainPtr = CreateWindow (szAppName, "Classic Blades of Exile build_27.09.2010",
WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
0,
0,

View File

@@ -49,6 +49,9 @@ monster_record_type return_monster_template(unsigned char store)
for (i = 0; i < 15; i++)
monst.status[i] = 0;
if((PSD[SDF_LEGACY_SCENARIO] == 1) && (monst.spec_skill == 30))//legacy scenario, petrifying touch is (was), in fact, disease touch
monst.spec_skill = 25;
return monst;
}

View File

@@ -1762,11 +1762,16 @@ void general_spec(short which_mode,special_node_type cur_node,short cur_spec_typ
else party.boats[spec.ex1a].property = (spec.ex2a == 0) ? 1 : 0;
break;
case 17:
check_mess = TRUE;
check_mess = true;
if (spec.ex1a != minmax(0,scenario.num_towns - 1,(int)spec.ex1a))
give_error("Town out of range.","",0);
else party.can_find_town[spec.ex1a] = (spec.ex1b == 0) ? 0 : 1;
*redraw = TRUE;
else{
if(PSD[SDF_LEGACY_SCENARIO] == 0) //"new" scenario, fixed show/hide town node
party.can_find_town[spec.ex1a] = (spec.ex1b == 0) ? 0 : 1;
else //legacy scenario, old buggy show/hide town node (for compatibility purposes)
party.can_find_town[spec.ex1a] = (spec.ex2a == 0) ? 0 : 1;
}
*redraw = true;
break;
case 18:
check_mess = TRUE;

View File

@@ -278,7 +278,7 @@ void start_town_mode(short which_town, short entry_dir)
(monst_can_be_there(c_town.monst.dudes[i].m_loc,i) == FALSE))
c_town.monst.dudes[i].active = 0;
}
// Thrash town?
// Trash town?
if (party.m_killed[c_town.town_num] > c_town.town.max_num_monst) {
town_toast = TRUE;
add_string_to_buf("Area has been cleaned out.");
@@ -308,12 +308,12 @@ void start_town_mode(short which_town, short entry_dir)
(c_town.monst.dudes[i].number != t_d.creatures[i].number))
c_town.monst.dudes[i].active = 0;
quickfire = FALSE;
crate = FALSE;
barrel = FALSE;
web = FALSE;
fire_barrier = FALSE;
force_barrier = FALSE;
quickfire = false;
crate = false;
barrel = false;
web = false;
fire_barrier = false;
force_barrier = false;
// Set up field booleans, correct for doors
for (j = 0; j < town_size[town_type]; j++)
for (k = 0; k < town_size[town_type]; k++) {

View File

@@ -268,6 +268,8 @@ typedef struct {
typedef struct {
unsigned char flag1, flag2, flag3, flag4;
unsigned char ver[3],min_run_ver,prog_make_ver[3],num_towns;
//ver = scenario (inner) version
//prog_make_ver = scenario "format" version (prog_make_ver[0] == 1 means it's a legacy scenario)
unsigned char out_width,out_height,difficulty,intro_pic,default_ground;
unsigned char town_size[200];
unsigned char town_hidden[200],a;

View File

@@ -51,7 +51,7 @@
LTEXT "2_0", 26, 257, 414, 38, 15
}
803 DIALOG 10, 10, 485, 383
803 DIALOG 10, 10, 505, 520
STYLE WS_POPUP | WS_DLGFRAME
{
DEFPUSHBUTTON "", 1, 279, 470, 31, 10
@@ -61,11 +61,11 @@
LTEXT "6_0", 5, 181, 109, 243, 47
LTEXT "6_0", 6, 181, 164, 243, 47
LTEXT "6_0", 7, 181, 219, 243, 65
LTEXT "1_63", 8, 395, 447, 54, 16
LTEXT "1_63", 8, 395, 487, 54, 16
LTEXT "5_716", 9, 8, 8, 36, 36
LTEXT "This is where you can define the various pieces of information the user will see when deciding whether or not to play your scenario. The meanings of all these fields are given in the documentation.", 10, 50, 23, 372, 53
LTEXT "~Scenario Details", 11, 50, 6, 256, 17
LTEXT "*Version number:", 12, 50, 84, 120, 14
LTEXT "*Scenario Version :", 12, 50, 84, 120, 14
LTEXT "*Credits, Part 1:", 13, 50, 110, 120, 14
LTEXT "*Credits, Part 2:", 14, 50, 165, 120, 14
LTEXT "*Contact Information:", 15, 50, 221, 120, 14
@@ -95,6 +95,7 @@
LTEXT "6_0", 39, 307,424, 43, 16
LTEXT "*Minimum Version:", 40, 50,397, 120, 14
LTEXT "*Program Make Version:", 41, 50,424, 120, 14
LTEXT "N.B: setting the major _program make version_ number (the first one) to 1 force the legacy compatibility. Therefore, legacy scenarii _program make version_ should always be of the form 1.x.x", 42, 50,444, 320, 53
}
804 DIALOG 10, 10, 639, 391
@@ -2067,7 +2068,7 @@ STYLE WS_POPUP | WS_DLGFRAME
{
LTEXT "1_63", 1, 435, 303, 61, 16
LTEXT "5_716", 2, 6, 6, 36, 36
LTEXT "Classic Blades of Exile Scenario Editor version 25.10.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 "Classic Blades of Exile Scenario Editor version 27.09.2010 | 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 "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

View File

@@ -164,7 +164,7 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR, int nCmd
}
mainPtr = CreateWindow (szAppName,
"Classic BoE Scenario Editor build_30.04.2010",
"Classic BoE Scenario Editor build_27.09.2010",
WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
0,
0,

View File

@@ -2324,6 +2324,10 @@ Boolean save_scen_details()
scenario.ver[0] = CDGN(803,2);
scenario.ver[1] = CDGN(803,3);
scenario.ver[2] = CDGN(803,4);
scenario.min_run_ver = CDGN(803,36);
scenario.prog_make_ver[0] = CDGN(803,37);
scenario.prog_make_ver[1] = CDGN(803,38);
scenario.prog_make_ver[2] = CDGN(803,39);
for (i = 0; i < 3; i++)
if (cre(scenario.ver[i],
0,9,"The digits in the version number must be in the 0 to 9 range.","",803) == TRUE) return FALSE;

View File

@@ -175,9 +175,6 @@ void save_scenario()
CloseHandle(file_id); CloseHandle(dummy_f); oops_error(14);
return;
}
scenario.prog_make_ver[0] = 1;
scenario.prog_make_ver[1] = 0;
scenario.prog_make_ver[2] = 0;
// Now, the pointer in scen_f needs to move along, so that the correct towns are sucked in.
// To do so, we'll remember the size of the saved town and out now.