Jump to content

Compiling the Blades of Exile Game


Ishad Nha

Recommended Posts

Source code by Ormus can be compiled but it currently lacks the cursors and the icon. All of these resources except for the Look cursor can be found in the official Spiderweb source code. I had to use the freeware Reshack program to get the last cursor. (Ormus did upload a new version of the source but the link is broken.)

 

With all of those resources the code can be compiled and the program will run, once it is moved to the Blades of Exile Package/Blades of Exile folder.

 

Edit:

The problem is the inability to load custom scenarios.

void build_scen_headers()

{.....

for (i = 0; i < 100; i++)

scen_headers.flag1 = 0;

 

 

short pick_a_scen()

{

build_scen_headers();

store_num_scen = 0;

for (i = 0; i < 100; i++)

if (scen_headers.flag1 != 0)

store_num_scen++;

store_scen_page_on = 0;

 

if (store_num_scen == 0) {

FCD(868,0);

return -1;

}

Message 868 is all too well known: "Blades of Exile currently has no scenarios installed. To install a scenario, copy it (with extra graphics files, if any) into the Blades of Exile Scenarios folder."

Link to comment
Share on other sites

The messages for this sort of thing are stored as parts of the dialogs they appear in, which for the Windows version seems to be in GAMEDLOG.RC.

 

If you mean a listing documenting when every message can appear and what it means, that could be helpful; if you mean collecting them all in one place in the source code, this is both what already exists and tends to make life a lot harder: you'll be reading through the code and you find "show_error(962);" What the heck does error 962 mean? You have to go look it up. Conversely, you might get an error "Foo not connected correctly to bar" and when you search the source code for it, you find out that it is string 10. Great, now you get to search all of the code for every use of the number 10, of which there might be hundreds not related to displaying error messages at all.

Link to comment
Share on other sites

This annoyance is found at the top of Gamedlog.rc, it is the second message in the file. As for a solution, it seems not to be a matter of the game looking for two separate save game folders as reported in this post: http://www.ironycentral.com/forum/ubbthreads.php?ubb=showflat&Number=28777&page=all.

 

Now the official game did not have this problem, you can compare the source code and see what might have gone wrong. Ormus is very busy at work and won't be able to do much to help.

 

In the post I suggested that you rename the scenario using one of the names of the three Spiderweb scenarios: valleydy.exs, stealth.exs or zakhazi.exs. Once you do this and enter the scenario, you can edit the save file at place 45,658 and insert the proper name. In Hexplorer I can remove the encryption with XOR(\), write in the correct name and then restore the encryption with another XOR(\). Very simple process, someone can write a program to do this too.

Link to comment
Share on other sites

That will take some time, I am currently tinkering with four things at once.

 

Edit:

If you want to write a program to change the name, let me encourage you in that. As only entering the scenario is broken, you only need to alter the first save game you make after you enter a scenario.

 

Hex-editing the scen name change takes no more than a minute and is quite easy. One trick is to take all save games based upon the same scenario and alter their scen names all at once. Then you can paste the name as MRU (Most Recently Used) in Hexplorer. You don't even need to know the hex translation of the scen name, simply enter it into the right hand pane.

Link to comment
Share on other sites

Debug mode: problem solved. Apparently there are at least two debug mode variables, in_scen_debug and debug_on. The first is set by the Shift + D shortcut but the second is not. I have added some if clauses to stop debug functions being called when the mode itself is not on.

 

I attempted to increase the number of dialog hot keys, it seems that the right-most one won't work. 2009 edition of Blades of Exile is stored at:

http://www.freewebs.com/ishadnha/BoE2009.zip

 

As for the Bloodshed Dev-C++ compiler itself, it seems that saving an individual file won't cause the compiler to re-parse it. Thus you get a screen full of warnings and at least one error leading to a compile failure. This all goes away when I remove the file from the project and then add it to the project once again, it is then re-parsed.

Link to comment
Share on other sites

Quote:
As for the Bloodshed Dev-C++ compiler itself, it seems that saving an individual file won't cause the compiler to re-parse it. . .

Tat sounds really wrong, so you might want to check that you're using the IDE correctly; the work around you describe should not be necessary merely to recompile, and i have never had such a problem.

With regard to the two debug modes: The latter sounds like a mode Jeff intended for his own use while developing the program, while the former is for the debug mode scenario designers can use while play testing. That's my guess, anyway.
Link to comment
Share on other sites

I may have chosen some odd compiler option or other.

 

As for debug modes, I will use only one, let designers choose what functions they want to use.

 

Edit:

The compiler problem does not affect the BoE Scenario Editor, which can be run from the folder it is compiled in. I have placed the BoE "images" folder as a subdirectory of the compiling folder.

Link to comment
Share on other sites

Now there was a problem reported with Scenarios like Shadow of the Stranger: the party was killed and then not resurrected. The problem was not in the chain of events per se, it was in a non-functioning raise dead node.

Specials.cpp line 1978: “adven.isAlive();” was replaced by “adven.main_status = 1;”. This fixed the problem, I am not too sure why. In the relevant file isAlive() is used several times, I don't know if other nodes are affected or not.

Link to comment
Share on other sites

I was going to add a whole lot of BoA style features to the Character Editor but I might concentrate on expanding the Debug mode instead. Intended changes include the abilities to add Special Items and set flags.

In BoA the debug mode is not under our control but in BoE it is. Also with debug mode there is no need to stop the game and go to the editor.

Link to comment
Share on other sites

I added some new Debug functions: Flight, Word of Recall, Magic Map. Also a new leave town function that is not in the uploaded version.

Edit:

Leave town is now in the uploaded version, it causes you to leave immediately, just what you need if the town is buggy. Word of Recall could be more accurately named Return to Start because that is what it does.

Link to comment
Share on other sites

  • 3 weeks later...

I have uploaded the source code that is used for the open Windows BoE game, see:

http://www.freewebs.com/ishadnha/2009BoESource.zip

It currently lacks the resources needed to compile, I will have to add them later. They can be found in the official Spiderweb source release.

If the code does not compile, have a second attempt at compiling, it may then compile with no problems. (Don't ask why, I don't know myself.)

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...