Jump to content

Code Discussion Thread


Celtic Minstrel

Recommended Posts

I thought it would be good to consolidate the list of suggestions proposed in this topic . I will edit this list as more ideas are proposed. You can post suggestions either here or in the other topic.

 

CM = Me (Celtic Minstrel)

ADoS = The Almighty Doer of Stuff

 

  1. Bug Fixes
    1. (ADoS)Fix the Add/Lose Sanctuary item ability.
    2. (Milla)Fix the acid weapon doubles as living saving charm deal.
    3. (Miramor)The mindduel code appears to check for items that grant magic resistance (ability 75) instead of will (ability 53).
    4. (Crynsos)Fix the Conceal Ability flag so that it actually conceals the ability.
    5. (ADoS,CM)Fix the bug that prevents the use of the small Alien Beast graphic.
    6. (ADoS)Fix recording of dialogue nodes which result from a special node sequence.
    7. (ADoS)Strength Potion cannot be made via Alchemy on Windows?
    8. (Kelandon)Reduce Mac font size so that dialogue is not cut off.
    9. (CM)Also fix the truncated dialogue problem involving the Macintosh string length limit that Windows seems to lack. (I've heard of this bug but not experienced it yet.)
    10. (Robsta)Fix masking on custom item graphics in the inventory?
    11. (Miramor)Fix up time passage as per this post and this post .
    12. (CM)Make the variables for gold, food, day, level, etc unsigned so that a roll-over does not leave you in the negative (especially for gold).
    13. (CM)Make an option to disable the editor's automatic placement of terrains. This includes the conforming of cave wall, mountains, water, hills; placing hills around mountains; placing the second half of the 2-space rubbles.
    14. (CM)The Mac resource files have two copies of every resource: one in the data fork and one in the resource fork.
    15. (CM)Make the waterfalls work in town.
    16. (CM)When the party is split up, Affect PC special nodes should only affect the active PC.
    17. (CM)When an item is placed and the Amount/Charges field is filled in with a number other than -1, it has no effect (unless the item is food or gold).
    18. (Miramor,CM)Fix automap updating so that changes in terrain will appear on the automap.
    19. (Milu)When "Custom Scenario" is clicked and then cancelled, the following message appears: "This scenario was created by BoE v2.0 or later and can't be run using this copy..."
    20. (CommonGenius)Apparently the Defence skill rather than the Thrown Missiles skill is checked when firing missile weapons.
    21. (Eschar Blacke) This bug (not sure if it has been fixed or not).
    22. (Milu?)Fix Destroy Items node so that it works for rectangles as well as a single space.
    23. (*i)Apparently event timers are broken.
    24. (novaalpha/Ishad NhaCM)Custom scenarios not detected in Windows? Mac.
    25. In shops, the item graphic 5 rows above the correct graphic is displayed.
  2. Item Stuff
    1. (Crynsos)Allow the specification of a missile animation for items. Maybe custom animations too.
    2. (Crynsos)Make it possible to make an item call a scenario special when used. (Implemented)
    3. (Miramor)An item ability to allow the creation of stat boosting/draining potions.
    4. (CM)Alter the calculation of prices for enchanting weapons, in order to avoid the strange results some expensive weapons get.
  3. Node Stuff
    1. (Arachnid)A special node to check the level in a certain skill. (May have been done already)
    2. (Arachnid,CM)The Edit Statistics node lets you edit any stat except HP or SP. You should be allowed to edit both.
    3. (Miramor)A special node to check for a spell targeted on the space (like the Ritual of Sanctify node).
    4. (Robsta)Concerning the special nodes that check for items: use the 2a and/or 2b fields to check either how many items or how many characters with items.
    5. (ixfd64,CM)A special node that displays a graphic in a dialog window.
    6. (w-dueck)Have the "Display Small Message" node call text-wrap.
    7. (CM, ADoS, Soupsoul)A node to check whether a character is alive.
    8. (CM, ADoS, Soupsoul)A node to check the health of a character (unless that's included in Stareye's stat check node).
    9. (ADoS)In One-Time Message nodes (and possibly a few others), add a flag to specify that it is a "room description", which will make it affected by the "Show room descriptions more than once" preference which currently does nothing.
  4. Races/Traits
    1. (Robsta,CM)Add Pacifist from Exile II.
    2. (Robsta)New trait Fast on Feet or Speedy or something like that.
    3. (Robsta)New Race - Goblin
    4. (Robsta,CM)New Race - Vahnatai
    5. (Robsta)New Race - Ogre
  5. Character Editor
    1. (Ishad Nha)Allow the player to add items from the scenario list rather than the default list.
  6. Scenario Editor
    1. (Ishad Nha)Allow customization of the toolbar button hotkeys.
    2. (CM)Remove editing restrictions on the first 91 terrain types.
    3. (CM)Allow the designer to resize the outdoors
    4. (CM,Hrothgar)Allow the designer to import an outdoor section
    5. (CM)An optional grid in the terrain editing screen so you can see where the edges of the spaces are.
    6. (Miramor,Thuryl)Increase the maximum values for some of the fields in the monster, item, and (possibly) terrain editor.
    7. (CM)When creating a new scenario, allow a choice of bladbase.exs files.
    8. (Robsta)Allow two spaces to display the same sign text, without having to waste a sign space by duplicating the text.
    9. (CM)A monsters palette and an items palette, so that the menus are no longer needed.
    10. (w-dueck)A recent monsters/items palette
    11. (Robsta)Allow the assignment of a default personality for monsters.
    12. (w-dueck)Display custom graphics in the editing dialogs.
    13. (w-dueck)Display custom graphics in the map view.
  7. Major Changes
    1. (Thuryl)Custom conveyor messages (an extra field in the terrain definition can refer to one or two scenario strings).
    2. (various)Raise/remove the various arbitrary limits on every aspect of the game - # of terrains, items, monsters, etc.
    3. (CommonGenius)The ability to target spells using letter designators. (So you do not have to resort to the mouse.)
    4. (CM)Allow the Automap window to be resized.
    5. (*i) Campaign Flags
    6. (jockmo42) Teleportation Memory
    7. (*i) Location Specials
    8. (Ishad Nha)Make fields stackable.
    9. (Ishad Nha)Use a "map" rather than a "list" of fields.
  8. Other Minor Changes
    1. (Crynsos,CM)Allow the use of custom scenario icons.
    2. (Crynsos)Use the MaidenWork font that comes with it.
    3. (Ishad Nha)Allow custom map icons.
    4. (CM)Mac version: Make the game first try to open a data fork resource file and only upon failing attempt to open a resource fork. If this is not simple it should be moved to the above list.
    5. (Kelandon)Make the Mac version accept BMP graphics files. (done)
    6. (CM)Remove the password-protection option for scenarios.
    7. (CM)Align the labels for checkboxes to the right rather than the left so that it is easier to see which label corresponds to which checkbox.
    8. (SlothMan,CM)Create a Preferences option to increase the size of the terrain view area from 9x9 to 11x11, 13x13, 15x15, etc.
    9. (Dahak)Support movement using the arrow keys rather than the keypad.
    10. (CM)Make the BoE Editor application open a .exs file when it is double-clicked or dragged and dropped on the application icon.
    11. (King InuYasha)Possibly a Linux port?
    12. (CM)Add an option to disable the "four-square border zone" around the outdoors which you cannot enter.
  9. Probably Bad Ideas

    Note: These are listed as "bad" either because they are mine and I think they're bad, because someone else on the board disagreed with them, or because they conflict with what I feel is a better idea.

    1. (Crynsos)Raise the maximum HP/MP and the HP gain rate per Level.
    2. (Crynsos)Raise the maximums for Character/Monster Stat Points
    3. (CM)New Race - Troglodyte
    4. (Robsta)New Race - Orc
    5. (Robsta)See first half of [http://pied-piper.ermarian.net/topic/7/001827/p2#000030]this post[/url] .
    6. (CM)An optional target icon displayed over the central space so you know exactly which space is the central space before pressing num5.
    7. (Robsta)Here's another suggestion, this time about modifying the stairway node - make it that if extra 1a and 1b are set to -1, than place the party in the new town with the same x and y coordinates(it currently puts them at (-1,-1)).
  10. Already Implemented

    (links to the threads discussing them; all were implemented by Stareye unless attributed otherwise; none are in either of the extant copies of the source)

    1. OBoE Scenario Format
    2. Item Call Global Special Ability
    3. Town Lighting
    4. Party Size?
    5. Has Enough of Species?
    6. Any Barrels or Crates?
    7. Has Enough of Statistic?
    8. Monsters Calling Specials
    9. Affect PC nodes affect monsters
    10. Pointers
    11. Mage and Priest Spell Nodes
    12. Town Hostile -> Set Attitude
    13. Petrification Touch
    14. (ADoS) Main Menu Scrolling Text
    15. Removal of Node Chain Length Limit
    16. Other Stuff (archived version)
    17. (Khoth?)Make the Mac version accept BMP graphics files.
    18. (CM)Make the game list more than 20 scenarios, and not list the default 3.
I have ommitted any suggestions that were unclear to me.
Link to comment
Share on other sites

  • Replies 990
  • Created
  • Last Reply

Top Posters In This Topic

  • 3 weeks later...

The game itself still says it is shareware, while it is really CPL?/GPL? and it needs to be fixed to lessen confusion.

 

Also, maybe if the sources were ported to use SDL and wxWidgets, we could get three birds in one stone? wxWidgets supports native UIs for Mac OS X, Linux, and Windows.

 

SDL is a graphics, audio, and input library that works natively on Windows, Linux, and Mac OS X.

 

I doubt we will need this, but for the sake of showing it, there is OpenAL, which is a cross-platform audio layer which has the ability to use "3D sounds" (EAX, etc.)

Link to comment
Share on other sites

Porting it all to wxWidgets would be the best way to go, I guess.

 

I'd be a bit weary of using both SDL and OpenAL though. I'm not speaking as a programmer here, so I could have the wrong idea, but use of both for sound (in one way or another) caused enormous problems for Vega Strike , with sound mixing not working and stuff.

Link to comment
Share on other sites

Quote:
Originally written by Miramor:
Porting it all to wxWidgets would be the best way to go, I guess.

I'd be a bit weary of using both SDL and OpenAL though. I'm not speaking as a programmer here, so I could have the wrong idea, but use of both for sound (in one way or another) caused enormous problems for Vega Strike , with sound mixing not working and stuff.
Well, I don't think this particular game would have any benefit from OpenAL. I just put that out there as information. I think SDL would still be needed for some of the custom output, unless you were to use wxUniversal (if it is possible to make wxUniversal use those bitmaps). But the problem with wxUniversal is that it looks ugly on all platforms. wxNative (which is what I call the standard toolkit) is better because it integrates with GTK, Aqua, and Win32 + native theming. For those people who use KDE, GTK will look like KDE apps when running under the KDE DE in certain distros (Fedora, SUSE, Mandriva, etc.) but not in others by default (Debian, Ubuntu, etc.)
Link to comment
Share on other sites

Well, I decided to add it to the list in my first post. But I don't think OS integration is a priority here - the game uses a custom dialog engine, so the only titlebars will be OS dependent. (The game window and the map window titlebars). Although I've noticed that on Windows the dialogs also have titlebars.

Link to comment
Share on other sites

Quote:
Originally written by Celtic Minstrel:
Well, I decided to add it to the list in my first post. But I don't think OS integration is a priority here - the game uses a custom dialog engine, so the only titlebars will be OS dependent. (The game window and the map window titlebars). Although I've noticed that on Windows the dialogs also have titlebars.
Well, the wx stuff would let you get the native Mac OS X UI you want, and the SDL library is important because of the the custom interfaces used in the game. Obviously you cannot use wx for the dialog engine, so SDL would be the logical choice there. This kind of port would make having a separate Mac and Windows codebase pointless since one codebase can build for all the targets. Essentially you modernized the Win32 code, while also providing native Mac OS X support and gaining Linux support. It seems like I am reiterating, but I am stressing what I would consider very important to the road on getting the game fully working on OS X and Windows as well as Linux. Plus, having one codebase would definitely be easier to manage than having two or three separate ones, eh?

Here is a link to a page on combining SDL with wxWidgets .
Link to comment
Share on other sites

  • 3 weeks later...

The "Already Implemented" list is the yet-to-be-released version of OBoE. It is available in the darcs repository here , but it's probably not a good idea to design scenarios for it yet as the scenario format is apparently in a state of "being rewritten" (even though development seems to have stopped).

Link to comment
Share on other sites

Well, Stareye was working on it at one point, and then disappeared. If I had time and could get it to compile and run, I might try to do some of it. (It currently compiles, but when I run it nothing happens.) In particular I was hoping to Carbonize the character editor. That will only help if you use a Mac - I will absolutely not do anything for the Windows version. Khoth carbonized the Mac version, and Ormus ported from Win16 to Win32, but they've disappeared too.

 

Perhaps I'll look at it over the holidays...

Link to comment
Share on other sites

Quote:
Originally written by novaalpha:
So you're current maintainer of this treasure? I was hoping that Spiderweb Software is interested in opensource version of it's best game ever... Now I see that chances are slim.
Eee hee hee, no. Quite the opposite. SW released the source for us to play with because SW isn't interested in maintaining it any more, and hasn't been for some time. SW isn't a charity, after all. If improvements are going to be made, it's up to us to make them.
Link to comment
Share on other sites

Quote:
Originally written by novaalpha:
So you're current maintainer of this treasure? I was hoping that Spiderweb Software is interested in opensource version of it's best game ever... Now I see that chances are slim.
No... no, I wouldn't call myself "maintainer" of the project. If anyone could have been considered "maintainer", it would have been Stareye, but he's been gone from the BoE board for quite some time. I do, however, have some coding experience, and since my exams are now over I think I would like to try working on some stuff. Carbonizing the character editor, in particular.

On the other hand, I may just play through my Avernum games now that I have both the time and the full versions. laugh

(Incidentally, does anyone know why it would compile, run, and then quit without doing anything? It exited with status 5, whatever that means...)
Link to comment
Share on other sites

Quote:
Originally written by novaalpha:
Your contribution will be much appreciated. smile
Thanks, but actually my contribution won't really help you much since I use a Mac and you use Windows. I'm not quite sure who would port the Windows character editor – maybe Ormus or Ishad Nha? Only, Ormus has vanished. smirk

P.S. Way too many emoticons.
Link to comment
Share on other sites

Quote:
Originally written by Celtic Minstrel:
I just sent him a private message about this. If he hasn't been checking the forum recently, then hopefully he has opted to be notified by email upon recieving a PM. Really all we can do about this is wait, I think.
The question now is, how long should we wait before we assume we need to redo the porting process to relicense it? Should we really wait? It has been quite a while since it was announced the change to GPLv2, and BoE/win32 is stagnant since then. Perhaps it should just be redone.
Link to comment
Share on other sites

Quote:
Originally written by Celtic Minstrel:
Feel free to redo it. Ormus has not read my message yet, so he either doesn't check his email often or has disabled email notification of private messages. There's not much more that can be done, really. frown
I'm actually attempting to do it. Given that this is my first major C++ project since I designed a tiny math program for a science fair project, I'm having to relearn C++ and find materials on porting from Win16 to Win32. Hopefully, I can additionally ease platform porting by porting some of the interfaces to SDL at the same time. I have also reorganized the source tree to a more logical format so there is no recursive path searching in the sources.
Link to comment
Share on other sites

I wonder – is there anyone who has access to both a Mac and a Windows compiler? Because porting to SDL (and possibly, as someone suggested, wxWidgets?) is probably a good idea, but would ideally (I think) be done in parallel on the Mac and Windows sources.

Link to comment
Share on other sites

Quote:
Originally written by Celtic Minstrel:
I wonder – is there anyone who has access to both a Mac and a Windows compiler? Because porting to SDL (and possibly, as someone suggested, wxWidgets?) is probably a good idea, but would ideally (I think) be done in parallel on the Mac and Windows sources.
The GNU compilers are the official ones for Mac and Linux, and also available for Windows. It is also the compiler my sources are being tuned for. Specifically, I am using the MinGW GCC 4.2.1-sjlj-2 tech preview version. I'm hoping once I figure out what the heck I am supposed to do, I will set up a Mercurial repository and allow people to work on the sources as well. And I was the one who suggested wx and SDL. I am also pushing for consolidation of the codebase to one tree, so that it is easier to maintain. If there are Mac and Windows developers interested in consolidating the codebases while providing native apps for their respective platforms, I would implore them to help me here, because I am a novice programmer, and I don't really know how to do the complex porting required to move code from raw APIs to encapsulated cross platform APIs. My goal is to try to move sound from MMSystem to SDL because that seems the simplest right now.
Link to comment
Share on other sites

I don't know whether this matters at all to you, but Khoth has a darcs repository for the Mac source.

 

The only reason I say this is that it might make sense to keep them both in the same type of repository.

 

Also, two Google code projects have been created – one is called oboe, the other blades-of-exile. If the creators of those projects were contacted, and you had a Google account, the source could be moved to their repository. (I think it's Subversion?)

 

These are just suggestions. Follow them or ignore them as you please.

 

I'm currently trying to get the Mac character editor to work, and making very little progress. Part of my problem is that, like you, I don't really understand all the API functions (in my case, the Carbon API).

 

It would probably be simpler (and messier in some sense) if the Mac version switched to a file system more like the Windows version, where each graphic is in a separate file. You could make it look neater though – on the Mac these files could probably be hidden inside a file package (a folder that is treated like a file); on Windows they could perhaps be zipped or something (this would require using zlib though, or something similar).

 

Maybe someone should do a comparison of the Mac and Windows source to determine which parts are identical.

 

It would be nice if this were to finally start to progress again. smile

Link to comment
Share on other sites

Quote:
Originally written by Celtic Minstrel:
I don't know whether this matters at all to you, but Khoth has a darcs repository for the Mac source.

The only reason I say this is that it might make sense to keep them both in the same type of repository.

Also, two Google code projects have been created – one is called oboe, the other blades-of-exile. If the creators of those projects were contacted, and you had a Google account, the source could be moved to their repository. (I think it's Subversion?)

These are just suggestions. Follow them or ignore them as you please.

I'm currently trying to get the Mac character editor to work, and making very little progress. Part of my problem is that, like you, I don't really understand all the API functions (in my case, the Carbon API).

It would probably be simpler (and messier in some sense) if the Mac version switched to a file system more like the Windows version, where each graphic is in a separate file. You could make it look neater though – on the Mac these files could probably be hidden inside a file package (a folder that is treated like a file); on Windows they could perhaps be zipped or something (this would require using zlib though, or something similar).

Maybe someone should do a comparison of the Mac and Windows source to determine which parts are identical.

It would be nice if this were to finally start to progress again. smile
While I do remember about those, I do have a Google account, but I do not wish to use Google's rudimentary system. I didn't want to use SF because of its extremely limited support of DVCSes. And I have worked with a project before using a DVCS. Personally, I find darcs to be lame, and besides, that codebase is for Mac. Most people haven't made a VCS version of the Windows version. Anyways, my tree is in a Mercurial repository for two reasons:

1) Because I always seem to lose track of my files

2) I wanted to allow others to see my tree help contribute to it.

The website is here .
At the website you can find links to various parts of the project, including the source.

Anyone that does want to help with this effort, which would be greatly appreciated, merely register at sharesource.org and send king_inuyasha a private message there requesting developer level access. Also, I would like to know what your skills are in the message. Mac, Linux, and Windows developers are all welcome.
Link to comment
Share on other sites

  • 3 weeks later...

InuYasha, I tried to go to the link in your signature, but it won't open (tries to download a file named "enano"?), and I can't find oboecross32 from the main site. Can you direct me to the appropriate link? I am interested in developing on BoE, on the Windows side. My impression is that most of the current development (what there is of it) is being done on the Mac side; but since presumably all of that work could be ported to Windows, I don't want to duplicate work that has already been done on the Mac.

Link to comment
Share on other sites

Quote:
Originally written by CommonGenius.com:
InuYasha, I tried to go to the link in your signature, but it won't open (tries to download a file named "enano"?), and I can't find oboecross32 from the main site. Can you direct me to the appropriate link? I am interested in developing on BoE, on the Windows side. My impression is that most of the current development (what there is of it) is being done on the Mac side; but since presumably all of that work could be ported to Windows, I don't want to duplicate work that has already been done on the Mac.
You might have caught the server at a bad moment. The PHP system on that server is being upgraded at times, and messed with quite often, unfortunately out of my control. The site is supposed to show CMS controlled site with basic info...

Anyways, here is a direct link to sources...

http://hg.sharesource.org/oboecross32/
Link to comment
Share on other sites

Hey, just another suggestion I thought of... It might be good to increase some of the limits on the scenario editor, a la the infamous "super editor". I realize that such functionality won't (and shouldn't) often be used; but in order to create tough monsters that aren't immune to everything, you have to give them skill levels well above the range possible with the unmodified editor.

Link to comment
Share on other sites

Quote:
Originally written by Celtic Minstrel:
Can you be more specific? It sounds like you're advocating an increase in the maximum possible value allowed in the various fields for Items and Monsters.
That's correct. 2500 HP is usually enough for anybody, but a maximum of 40 Skill isn't nearly enough: by blessing enough, it's possible to make sure that even monsters with 40 Skill will almost always miss the PCs.
Link to comment
Share on other sites

Perhaps all limits should be raised to the maximum allowed by the BoE program itself.

 

Incidentally, I know the Bonus attribute for Items already goes up to 60 in the editor despite the item editing window saying that it goes up to 10. If you enter an out of range value it tells you in an error that it can go up to 60 though.

Link to comment
Share on other sites

Quote:
Originally written by Thuryl:
Quote:
Originally written by Celtic Minstrel:
Can you be more specific? It sounds like you're advocating an increase in the maximum possible value allowed in the various fields for Items and Monsters.
That's correct. 2500 HP is usually enough for anybody, but a maximum of 40 Skill isn't nearly enough: by blessing enough, it's possible to make sure that even monsters with 40 Skill will almost always miss the PCs.
Bingo.

[spoilerS FOLLOW]

The best example of this I can think of is Barcoorah's Revenge - it contained monsters that had very high skill levels but were not magic-immune, which made for interesting battles that required some thought on what spells to use. Also, it made the endboss comparatively nastier, since it was magic-immune.

[/spoilerS]

I would go so far as to say that this should be a rule of thumb for scenario design - only very powerful or very strange monsters should have full magic immunity. It would help a lot of scenarios avoid hackfest moments, and give players a nasty shock when they finally did find something they couldn't use curses on. The problem is, without the limits on the Editor being raised, this wouldn't be applicable to high-level scenarios.
Link to comment
Share on other sites

Quote:
Originally written by Celtic Minstrel:
A few questions:

  1. Does the zip link at the top download the source?
  2. Are you basing all code on the Windows sources? Or are you taking Mac sources into account, too?
  3. What platform are you doing this work on?

In order
  1. Yes
  2. Yes, Windows sources.
  3. Yes, but in a special way. If the porting goes as outlined in the main page of the website, then automatically the sources will be Mac OS X compatible.
Link to comment
Share on other sites

  • 3 months later...

Custom item graphics, the documentation says that 150 is added to the custom graphic sheet slot number to give the graphic number. In practice it seems to be 200, and the item graphic number is "char", hence has a maximum value of 255.

 

This problem seems to occur only when items with custom graphics are sold in shops. There is no apparent problem when the item is placed on the ground by the scenario editor.

Edit: it does not seem to affect item graphics once the item is actually bought and appears in the PC's inventory. It is only when the item is being displayed for sale.

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...