In case anyone's interested:
1) I've ported Ormus' dev-cpp code to Visual Studio 2005, if anyone is doing development in this environment, I'd be happy to help.
2) There's a bug in the Windows version causing BoE not to read scenario lists properly - the ListBox LD_DIR message reads files starting from the current directory, not from the starting directory. Simple fix, in FILEIO.CPP starting from line 2034 add:
Code:
char directory[256];GetModuleFileName(store_hInstance, directory, 255);PathRemoveFileSpec(directory);SetCurrentDirectory(directory);
(this one requires the include of shlwapi.h and requires linking with the shlwapi library, since the library is just needed for the PathRemoveFileSpec, you can probably rewrite it without it, but I'm lazy )
Also, I've seen some requests for fixing petrification touch, so here it is.
In COMBAT.CPP, around line 2388, add:
Code:
if ((attacker->m_d.spec_skill == 30) && (get_ran(1,0,2) < 2)){ add_string_to_buf(" Petrifies! "); print_buf(); petrify_pc(target,attacker->m_d.level * 5);}
(you also have to remove the "|| ... skill == 30" from the disease case).
In PARTY.CPP, add the following:
Code:
void petrify_pc(short which_pc,short how_much){ short r1; // resistance value if (adven[which_pc].isAlive() == false) return; if (pc_has_abil_equip(which_pc,49) < 24) { sprintf ((char *) c_line, " %s is immune to petrification.",(char *) adven[which_pc].name); add_string_to_buf((char *) c_line); return; } r1 = get_ran(1,0,100); r1 += adven[which_pc].level * 4; if (r1 > how_much) { sprintf((char *)c_line, " %s resists petrification.", (char *)adven[which_pc].name); add_string_to_buf((char *)c_line); return; } else { sprintf((char *)c_line, " %s is turned to stone.", (char *)adven[which_pc].name); add_string_to_buf((char *)c_line); kill_pc(which_pc,4); one_sound(90); put_pc_screen(); }}
Also, add a relevant declaration to PARTY.H.