Author Topic: More Internal Command Codes  (Read 1852 times)

Offline Eddy-B

  • Hero Member
  • *****
  • Posts: 1186
    • http://www.eddy-b.com
More Internal Command Codes
« on: November 06, 2005, 12:48:38 PM »
I found some more commands entries inside Outpost 2.
The existing commands are from 0x00 (ctNop) to 0x35 (ctInvalidCommand), but there are more. These are not actual commands, that can be executed, but they are connected to unit properties.. and they are in the commands list. They do NOT start with ct (CommandType i guess).
Code: [Select]
0x36 WeaponFiring
0x37 moDone
0x38 moMove
0x39 moBuild
0x3A moBuildMine
0x3B moRepair
0x3C moDevelop
0x3D moObjWait
0x3E moOperationalWait
0x3F moEMPWait
0x40 moLanding
0x41 moObjFroze
0x42 moDelSelf
0x43 moDoResearch
0x44 moObjDocking
0x45 moScavange
0x46 weaponMove
0x47 weatherMove
0x48 empRecover
0x49 weaponAimCoarse
0x4A weaponAimFire
0x4B SantaWalking
0x4C moInvalid
I don't know, yet, what they do, if they working at all. Maybe Hooman knows, cause i know he came across this before...
Rule #1:  Eddy is always right
Rule #2: If you think he's wrong, see rule #1
--------------------

Outpost : Renegades - Eddy-B.com - Electronics Pit[/siz

Offline BlackBox

  • Administrator
  • Hero Member
  • *****
  • Posts: 3093
More Internal Command Codes
« Reply #1 on: November 06, 2005, 02:55:25 PM »
Yeah, I think these are events. The processing code for them hasn't been found yet, AFAIK..

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4955
More Internal Command Codes
« Reply #2 on: November 06, 2005, 05:00:48 PM »
Actually those are two seperate lists. They aren't meant to be combined like that. Offset 0x21 in the unit records use the first list, and offset 0x22 use the second list. I believe it is the difference between the command that a unit has been ordered to do, and what it is actually doing. Or something close to this. I'm not sure my idea quite fits perfectly. But I'm pretty sure those lists are meant to be treated seperately. They have a 0 entry sperating them. Plus, the values at offset 0x22 seem to match the second list perfectly.

 

Offline HaXtOr

  • Sr. Member
  • ****
  • Posts: 423
    • http://www.wtfmoogle.com
More Internal Command Codes
« Reply #3 on: December 04, 2005, 01:52:09 AM »
i feel so in the dark about these things

Offline Eddy-B

  • Hero Member
  • *****
  • Posts: 1186
    • http://www.eddy-b.com
More Internal Command Codes
« Reply #4 on: December 04, 2005, 05:14:51 AM »
i think we all are -- i haven't found routine that uses those commands yet.All you'd need is a debugger (like OllyDebug), and start messing around with op2 .. even you can do that!
Rule #1:  Eddy is always right
Rule #2: If you think he's wrong, see rule #1
--------------------

Outpost : Renegades - Eddy-B.com - Electronics Pit[/siz

Offline HaXtOr

  • Sr. Member
  • ****
  • Posts: 423
    • http://www.wtfmoogle.com
More Internal Command Codes
« Reply #5 on: December 04, 2005, 01:26:12 PM »
I just wish people would documebnt everything in a simple easy to print out manual thingy.. flow charts help me out alot as im a visual learner
« Last Edit: December 04, 2005, 01:26:45 PM by HaXtOr »

Offline Eddy-B

  • Hero Member
  • *****
  • Posts: 1186
    • http://www.eddy-b.com
More Internal Command Codes
« Reply #6 on: December 04, 2005, 04:14:48 PM »
Quote
flow charts help me out alot as im a visual learner
so noted.
and most things that are documented can be found on the wiki
Rule #1:  Eddy is always right
Rule #2: If you think he's wrong, see rule #1
--------------------

Outpost : Renegades - Eddy-B.com - Electronics Pit[/siz

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4955
More Internal Command Codes
« Reply #7 on: December 04, 2005, 06:31:27 PM »
As I said earlier, that list isn't of commands you can issue a unit. It's more like what the unit is doing to carry out the commands it's been given. If you check where the two tables meet in memory, there is a NULL DOWRD between them. They are sperate tables.

Those values seem to be used in conjunction with timers mainly. Sorta like saying what the unit is doing with the timer for commands that have more than one action. Or just to clear up some ambiguity as to wether the timer is starting and hasn't yet been set or has just expired. If you check where the real commands are processed (commands are stored at offset 0x21), it'll sometimes set values at offset 0x22 which are offsets into this second table. If you note the offsets and what it's doing, the second table starts with "moDone" as index 0. The "WeaponFiring" one is the last index of the command packet type table. It's used when a weapon is fired (a new unit of the weapon type is created) and that's the command it's issued.

The second table has for the most part proved to be a little use in anything I've done. I guess you can play around with the value at offset 0x22 to get some odd effects. Like repeating an action more than once. Or making a unit wait twice as long doing something.