Jump to content

Ishad Nha

Member
  • Posts

    2,420
  • Joined

  • Last visited

Posts posted by Ishad Nha

  1. A Revised Blades of Avernum that uses the Avernum 3: Ruined World engine.
    Blades of Exile came from Exile 3, Blades of Avernum came from Avernum 3 and a Revised Blades of Avernum (RBoA) could come from Avernum 3: Ruined World.

    This could be done relatively quickly, it requires no new scenarios or game writing. It simply requires removing the A3-specific features that are hard-coded. It also requires provision for many scenarios.

    Import Blades of Exile scenario will need to be a separate function from Import Blades of Avernum scenario. Porting will probably be the most involved feature...
    Some porting had to be done to create A3RW, size Small and Medium towns for example.

  2. Manual says:

    "Willpower (Base: INT/2 + MAG/2 + PRI/2) - Helps you resist the effects of charming, paralysis, and other mental attacks. Each level of it increases your chance of resisting by %5."

    So it all depends on what level of magical skills a PC has. This is of course tricky to guess in a level 35-40 party, a PC could have any level in any Magical skill.

  3. Porting of objects (creatures, terrain and items) is based upon the conversion tables. Said tables envisage no customization of any object. This is not helpful when the best scenarios feature a lot of customization of objects.

    Currently the tables are hard-coded, written into the Editor program itself. They are found in the header file Bl A Fileio.h.

     

    Porting a heavily customized scenario requires the ability to alter the header file and then compile the program, something not everyone will be familiar with.

     

    Two approaches are possible here:

    (1) tables are no longer written into the program. Instead the program reads them from an external file.

    (2) tables in the scenario editor are patched by a slab of data, which could be written with a spreadsheet. Actual patching is done by a hex editor. In my last version of the Editor, most of the tables were found after offset 595,423.

     

    Version of Bl A Fileio.h found at the Halls of Chaos SVN repository has been customized for one scenario only: Shadow of the Stranger. This will need to be corrected.

  4. Microsoft is getting rid of the WinHelp format slowly but surely...

    They want people to switch from WinHelp (.hlp) to Compiled HTML (.chm) format.

    But they won't supply a simple conversion program to turn an hlp into a chm. So for the time being, anyone with a Windows 10 platform won't be able to use the supplied WinHelp, .hlp, help files.

    If you could decompile the hlp project you could then convert it to a chm project. But they don't supply a program for that either.

     

    With an offline help file you can add your own corrections, clarifications and updates.

  5. I am not a serious coder/programmer! Program prints out okay...

    Program prints out data, which is put into a spreadsheet for analysis. To detect customization, data from the relevant scenario is compared with data from Bladbase.exs. Idea is go through each object (monster, item or terrain type) and see how it differs from the default values found in Bladbase.exs.

     

    XML I will need to look into at some point...

  6. I think it can be done. I will need to create some programs to detect customized terrain, items and monsters...

     

    Code done for program, now I need to write a suitable spreadsheet for doing the actual comparisons.

     

     

     

    #include <iostream>

    using namespace std;

     

    #include <stdio.h>

    #include <stdlib.h>

     

    //cd C:\

     

    int main(void)

    {

    unsigned long buffer[81200]; /* initialized to zeroes */

    unsigned long i,j,k;

    FILE *fp = fopen("myfile", "rb");

     

    if (fp == NULL) {

    perror("Failed to open file \"myfile\"");

    return EXIT_FAILURE;

    }

     

    for (i = 0; i < 81200; i++) {

    unsigned long rc = getc(fp);

    if (rc == EOF) {

    fputs("An error occurred while reading the file.\n", stderr);

    return EXIT_FAILURE;

    }

    buffer = rc;

    }

     

    fclose(fp);

     

     

    char *scen_letters[127] = {

    "*"," "," "," "," "," "," "," "," "," ",

    " "," "," "," "," "," "," "," "," "," ",

    " "," "," "," "," "," "," "," "," "," ",

    "",""," ","!","\"","#","$","%","&","'",

    "(",")","*","+",";","-",".","/","0","1",

    "2","3","4","5","6","7","8","9",":",";",

    "<","=",">","?","@","A","B","C","D","E",

    "F","G","H","I","J","K","L","M","N","O",

    "P","Q","R","S","T","U","V","W","X","Y",

    "Z","[","]","]","^","_","`","a","b","c",

    "d","e","f","g","h","i","j","k","l","m",

    "n","o","p","q","r","s","t","u","v","w",

    "x","y","z","{","|","}","~",

    };

     

    printf("\nThis program prints out a few features of the Blades of Exile scenario file.\n It is only concerned with detecting customization of monsters, items and");

    printf("\nterrain types. It does this by printing out data for the current Exs file.\n Said data is then compared with the data from Bladbase.exs\n");

     

    printf("\n\nScenario Flag\n0,,,"); // Scenario Flag

    printf("%d,%d,%d,%d",buffer[0],buffer[1],buffer[2],buffer[3]);

     

    printf("\n\n\nOffsets 3134:30781 Scenario Monsters [256][108]\n");

     

    for (i = 3134; i < 30782; i++) { // Scenario Monsters [256][108]

    if (i % 108 == 2)

    printf("%d,%d,,",i,(i - 3134)/108);

    printf("%d,",buffer);

     

    if (i % 108 == 1)

    printf("\n");

    if (i == 30781)

    printf("\n\n\nOffsets 31384:35479 Terrain Types [256][16]\n");

    }

     

    for (i = 31384; i < 35480; i++) { // Scenario Terrains [256][16]

    if (i % 16 == 8)

    printf("%d,%d,,",i,(i - 31384)/16);

    printf("%d,",buffer);

     

    if (i % 16 == 7)

    printf("\n");

    if (i == 35479)

    printf("\n\n\nOffsets 41942:68341 Item Types [400][66]\n");

    }

     

    for (i = 41942; i < 68342; i++) { // Item Types [400][66]

    if (i % 66 == 32)

    printf("%d,%d,,",i,(i - 41942)/66);

    printf("%d,",buffer);

     

    if (i % 66 == 31)

    printf("\n");

    if (i == 68341)

    printf("\n\n\nOffsets 68342:73461 Monster Names [256][20]\n");

    }

     

    // 22:46 Full, Identified Item Name

     

     

    for (i = 68342; i < 73462; i++) { // Monster Names [256][20]

    if (i % 20 == 2) {

    printf("%d,%d,",i,(i - 68342)/20);

    for (j = 0; j < 20; j++) {

    printf("%s",scen_letters[buffer[i + j]]);

    if (buffer[i + j + 1] == 0)

    break;

    }

    printf(",");

    }

     

    printf("%d,",buffer);

     

    if (i % 20 == 1)

    printf("\n");

    if (i == 73461)

    printf("\n\n\nOffsets 73462:81141 Terrain Names [256][30]\n");

    }

     

     

    for (i = 73462; i < 81142; i++) { // Terrain Names [256][30]

    if (i % 30 == 22) {

    printf("%d,%d,",i,(i - 73462)/30);

    for (j = 0; j < 30; j++) {

    printf("%s",scen_letters[buffer[i + j]]);

    if (buffer[i + j + 1] == 0)

    break;

    }

    printf(",");

    }

     

    printf("%d,",buffer);

     

    if (i % 30 == 21)

    printf("\n");

    if (i == 81141)

    printf("\n\n\nStarting at Offset 81142 Scenario Name\n");

    }

     

    k = 81142 + buffer[41636];

    for (i = 81142; i < k; i++) { // Scenario Name

    printf("%s",scen_letters[buffer]);

    }

     

    printf("\n\n");

     

    return EXIT_SUCCESS;

    }

     

     

  7. "If you want to run the original BoE in DosBox you need to obtain a copy of Windows 3.x (I dunno, 95 or 98 might also work, but would probably be harder) and go through the process of installing it."

    I did not know that, I have never tried to run the original BoE.

    Even Compatibility Mode won't work!

×
×
  • Create New...