You can read and reply to posts and download all mods without registering.
We're an independent and non-profit fan-site. Find out more about us here.
Axemeleon - Today at 12:05 AMe.g. @3RDplayer 's mission included cybstrng.res and gerstrng.res .... but only a few resources inside those files differ from original ones... and many of those strings are not related to the actual game, but they are used by the main menu, credits, movies.... so if we change anything in those strings to support options that were not in the original game (key binding, GPU configs etc), loading his mission will overwrite those new strings.So my idea is that fan missions should not include those stringsOr we could establish resource numbers reserved for menus, then fan missions should always skip those numbersThat's why I'd like to hear you guysto know what's you preferenceand considering people are creating their own ports I suppose it would be nice if we had a common denominator, so fan missions could work on every port
/*=============================================Test Mission============================================= Test =============================================*///// Called when the mission is loaded//void LoadMission(void){ //ResTable.SetBase("mission", "test_mission.dat"); RestabSetBase("mission", "test_mission.dat"); //Mission.SetArchiveFile("test_mission.dat"); // set the archive file SetSavePath("missions/test_mission"); // select savegame path for this mission}//// Called during startup to register the mission name//void RegisterName(void){ SetMissionName("Test mission");}//// Called during mission startup (before loading level)//void StartMission(void){ player_struct.level = 1; // start on medical level player_struct.hit_points = 255; // player_struct.cspace_time_base = 1800; player_struct.accuracy = 100; player_struct.energy = 207; // will be decremented by 208 by entry level trigger player_struct.shield_absorb_rate = 0; player_struct.fatigue_regen = 0; player_struct.fatigue_regen_base = 100; player_struct.fatigue_regen_max = 400; // // set player initial location // plr_loc_initial.x = 0x1C80; plr_loc_initial.y = 0x1680; plr_loc_initial.h = 32; plr_loc_initial.z = 0; // will be overwritten plr_loc_initial.p = 0; plr_loc_initial.b = 0;}
As for the mod support, this is what v0.2.0 of HackEd was for - to get all talking and trying things out I have documented the proposed system here: https://github.com/inkyblackness/hacked/wiki/ModdingSupportIn short: HackEd stores resources of mods in files with the same names as the original. The assumption here is that mods would be stored in separate directories.There are two cases of resources overruling previous mods (original data, in this system, is seen like any other mod):- resource overwrites all and any previous blocks (for single-resources, that's easy, for compound resources, it means all blocks, and possibly making it "smaller")- some compound resources are resource lists, which overwrite only on a block level (not entire resource). This is the case where compound resources contain a self-contained entity per block. Examples are string lists, such as the Trap messages.So, with the whole thing active, the editor (or a compatible engine) would iterate over all activated mod folders, starting with the base game data, applying these overwriting rules.When the game data is stored in "/SystemShock/data/res", mods could be stored in "/SystemShock/data/mods/...", (e.g.: "/SystemShock/data/mods/rewired", "/SystemShock/data/mods/coolTextures", ...) and in the game-menu (or startup-screen to pass exe arguments) you select the order of the mods.
So far I don't see a reason to rename files.
also like the idea of those AS header files.also, the ingame menu could use some indicator to show a FM is active.
I'm aware that we are nowhere near dozens of mods and multiple fan missions with SS1, but if we get the framework right early, we can save ourselves a headache or two in the future.
have not figured out how to turn the player when the mission starts
Can you construct a use-case matching that of the resource system of SS1? (I don't know the resource system of SS2, and if it's filename-based, then it can't be compared).
the engine looks into the locations, loads the objects from all three, and applies priorities...