Galaxy Separator

Talk about anything related to old versions of Armada.
posted on December 12th, 2007, 11:01 pm
Hi, I'm Chael. I've been working on a little modification in my spare time and was wondering if you fleetops guys have any advice for me. It apperears you guys are waist deep in disassembled armada code and as it happens, so am I. I've been attempting to modify the .exe to allow a second separatingweapon function, possibly with 3 or more ships. I know you have developed something similar to this and I was hoping you might share some of your information with me. I do not intend to release my mod due it's obvious obsolescence and the legal issues that everyone keeps telling me about, but I do want to complete it simply for the challenge. Thanks in advance.
posted on December 14th, 2007, 6:30 pm
welcome to the forums.
modifying is not enough, you need to inject some self written code. basically you need to look at some of the weapon class functions (you should find these with the pdb) and create a new class inheriting from it. when this is done you need to create a prototype class and register it within armada.
creating the inherince class is the biggest part of work here. i did this entirely in delphi. i don't know if you can do this easier in c++ as i did in pascal. i had to recreate everything from ground up that means even virtual function table and object descriptors as obviously delphi uses its own data structures for classes. as armada 2 was programmed in ms c++ 6.0 it may be easier to create a new class with c++.
posted on December 14th, 2007, 11:13 pm
Thank you for your reply! I'm sure i don't know quite as much about this as you, but here's what I've been looking at: I used a disassembler to get a rough understanding of the code. I traced the separatingweapon class all the way back to the other special weapons (I think). I beleive I can copy separatingweapon and it's dependants and then rework all of the address references. Do you follow? Or is this a ridiculous waste of my time? I know enough C++ to do as you described, I think. But I've never tried it. Basically I've been working with assembly and a hex version of the exe. I can't find a program that will disassemble it and reassemble it, so all my modifications are done to the hex using the assembly as a reference.
posted on December 15th, 2007, 12:20 pm
you need to write a hooking dll and loader, that attaches the dll to armada (google for hooking). it's alot easier to write a new weaponclass from scratch as modifying the existing one. you need to call a lot of armadas existing functions for that. i don't know how that works in c++ but you could always do some assembler calls.
Reply

Who is online

Users browsing this forum: No registered users and 3 guests

cron