I found a very nasty bug, maybe it is a known issue, but I could not find any info on it so I'll just post it here.
Bug description:
When there is tLisp code in a <Globals> block, the script is loaded, even if the mod is *not* selected at game start.
Since the mods sorted by UNID, the last mod is the one to take prevailance, the <Globals> block from this last mod will always overwrite the ones from mods before it, whether the mod is selected at game start, or not.
Bug replication code download:
download
How to reproduce:
1. Download the bug replication mod;
2. Clear all mods from the 'Extensions' folder;
3. Install the two mods;
4. Start a new game with 'Test Mod A v1.0' selected and 'Test Mod B v1.0' *un*selected;
5. Select the Debug-class yacht (the modified Sapphire) and start the game;
6. Press 'U' (use) and choose the 'Test ROM':
Expected result:
An on-screen message saying: "Hello, I'm the Test ROM from Test Mod A!"
Actual result:
An on-screen message saying: "Hello, I'm the Test ROM from Test Mod B!"
Cheers
1.1 Bug Report: Cross-mod code contamination due to <Globals
EDIT: Nevermind. (Did not fully read everything carefully.)
Download and Play in 1.9 beta 1...
Drake Technologies (Alpha): More hardware for combat in parts 1 and 2!
Star Castle Arcade: Play a classic arcade game adventure, with or without more features (like powerups)!
Playership Drones: Buy or restore exotic ships to command!
Other playable mods from 1.8 and 1.7, waiting to be updated...
Godmode v3 (WIP): Dev/cheat tool compatible with D&O parts 1 or 2.
Drake Technologies (Alpha): More hardware for combat in parts 1 and 2!
Star Castle Arcade: Play a classic arcade game adventure, with or without more features (like powerups)!
Playership Drones: Buy or restore exotic ships to command!
Other playable mods from 1.8 and 1.7, waiting to be updated...
Godmode v3 (WIP): Dev/cheat tool compatible with D&O parts 1 or 2.
-
- Developer
- Posts: 2997
- Joined: Thu Jul 24, 2003 9:53 pm
- Contact:
I'll look into it and see how hard it is to fix.
<Globals> were originally considered to be, well, global, so they were not expected to clash. But of course, that's not possible with all the different extensions being created.
<Globals> were originally considered to be, well, global, so they were not expected to clash. But of course, that's not possible with all the different extensions being created.
- pixelfck
- Militia Captain
- Posts: 571
- Joined: Tue Aug 11, 2009 8:47 pm
- Location: Travelling around in Europe
I understand where the bug comes from. the globas tag is not identified by a UNID, so the engine has no method, other than file inclusion-chain to identify where a global block belongs to.
But I guess you can image the frustration it took to track this one down
~Pixelfck
But I guess you can image the frustration it took to track this one down
~Pixelfck
-
- Developer
- Posts: 2997
- Joined: Thu Jul 24, 2003 9:53 pm
- Contact:
I believe I have fixed this in 1.2 Beta 2. Please try it out.
The fix is to re-run the <Globals> for the selected extensions/adventure at game-start and game-load time.
The fix is to re-run the <Globals> for the selected extensions/adventure at game-start and game-load time.