Jump to content

Displacer

Members
  • Content Count

    138
  • Joined

  • Last visited

About Displacer

  1. I'm in the Execute Action switch statement. The switch is loaded with 413 cases, which lines up with the number in the database, yet Help is not one of them. I cannot find 17 anywhere in the switch statement. I have no idea what's up with that. This is the EE version of BGII, maybe it got changed to another number? I know Help was kind of flaky in PS:T. I may have to traceback to AI Decode, see if it got changed. If not, I have no idea where it's processed. I can say it's not in with the others
  2. Ugh, I have to find the actions section again, forgot to mark it
  3. Found the Apply Effect section. This appears to be after all the setup has been done and the actual effect is applied. They range from a few lines of code to several hundred lines for different effects. Some of them have switch statements, I'm assuming this has to do with the parameters. For example CGameEffectAC::ApplyEffect contains a switch statement with 17 different switch statements, meaning (I assume) 17 different outcomes can be had with this effect.
  4. So I really don't know how to proceed with this. I'm getting the usual "you're wrong and a tool to boot" and other random nonsense, even though I'm posting the actual code that differs from what you're arguing I'm wrong about. I stated clearly that some things may be modified by parameters, and should be tested because obviously the code has been changed in the EE version, which is what I'm documenting. I could traceback through all the code after the setup code, but I suspect I would get the same arguments, so I don't know if I really want to do that and have to argue through it. It's also a pain knowing things have been discovered and just not updated in the database. That doesn't bother me as much, I just see it as double checking. At any rate my opinion is they should be rechecked to see if they match up to what I've found, not just blown off as incorrect. I'll give you the offset to the switch statement to all the opcodes and you can see them for yourself. I've also found the "Actions" switch statement and I don't know if it would be worth the trouble of going through them, considering what I'm getting here I mean do you want to know how these work or not?
  5. That's not how software works...
  6. Not disputing that some opcodes are correct, as I said what I posted was just setup code and the call, I didn't check the parameters or how they are used, or the actual calls so they may very well work as described, the call altered via the parameters so I'm not disputing that, just posting the differences I found while I was in that section. I can always trace back to see how the parameters are used, or trace forward from the setup code if needed. I may do that anyway because now I'm curious how they're used So I saw a lot of unknowns in the parameters of the opcodes, are they still unknown and just not updated in the database? Or do they still need to be explored?
  7. Yea, I'm almost positive the Show creatures are just there to prevent crashes. 110 was just the first one I found, most likely fixups from EE. As for 319, I didn't go further into the code, what I posted was from the switch statement, they're just setup code but the call after setup is to detect traps, that doesn't mean it works however. I did no checking into parameters, or the calls themselves from the setup code so its entirely possible they're broken in another area of code, that's why I added to some that it should be tested. If you need, I can trace through any of them to their completion
  8. Well that's about it. For some reason, some of the switch statement code was out of order so I skipped over most of them, there weren't many but there are a few I didn't check. So there you have it. Let me know if you need the parameters hunted down, or any other info.
  9. Opcode 360 has been replaced with the Show Creature code, unused
  10. Opcode 338 has been replaced with the Show Creature code so it's unused
  11. Opcode 322 is listed as unused. Code is there for Evade Area Of Effect so it's being used now, or was just not used in game. Relevant code: push 144h ; jumptable 0059DF61 case 322 .text:005A1E73 call operator new(uint) .text:005A1E78 add esp, 4 .text:005A1E7B test eax, eax .text:005A1E7D jz loc_5A239F .text:005A1E83 mov ecx, [ebp+target] .text:005A1E86 push dword ptr [ecx+4] .text:005A1E89 push dword ptr [ecx] ; target .text:005A1E8B mov ecx, eax ; this .text:005A1E8D push [ebp+sourceID] ; sourceID .text:005A1E90 push [ebp+source] ; source .text:005A1E93 push edi ; effect .text:005A1E94 call CGameEffectEvadeAreaOfEffect::CGameEffectEvadeAreaOfEffect(Item_effect_st *,CPoint const &,long,CPoint) .text:005A1E99 mov esi, eax .text:005A1E9B jmp loc_5A23A1 ; jumptable 0059DF61 default case
  12. Opcode 319 seems to have been changed to Detect Traps. Relevant code: push 144h ; jumptable 0059DF61 case 319 .text:005A1DDD call operator new(uint) .text:005A1DE2 add esp, 4 .text:005A1DE5 test eax, eax .text:005A1DE7 jz loc_5A239F .text:005A1DED mov ecx, [ebp+target] .text:005A1DF0 push dword ptr [ecx+4] .text:005A1DF3 push dword ptr [ecx] ; target .text:005A1DF5 mov ecx, eax ; this .text:005A1DF7 push [ebp+sourceID] ; sourceID .text:005A1DFA push [ebp+source] ; source .text:005A1DFD push edi ; effect .text:005A1DFE call CGameEffectDetectTraps::CGameEffectDetectTraps(Item_effect_st *,CPoint const &,long,CPoint) .text:005A1E03 mov esi, eax .text:005A1E05 jmp loc_5A23A1 ; jumptable 0059DF61 default case
  13. Opcode 313 seems to have been removed. I'm almost positive the Effect Show Creatures are placed in unused opcodes to prevent crashes and this one contains that code. (code is first one in this thread)
  14. Opcode 312 is Immunity To Sequester. Code seems intact, maybe it's been fixed? Worth checking out. Relevant code: push 144h ; jumptable 0059DF61 case 312 .text:005A1DAB call operator new(uint) .text:005A1DB0 add esp, 4 .text:005A1DB3 test eax, eax .text:005A1DB5 jz loc_5A239F .text:005A1DBB mov ecx, [ebp+target] .text:005A1DBE push dword ptr [ecx+4] .text:005A1DC1 push dword ptr [ecx] ; target .text:005A1DC3 mov ecx, eax ; this .text:005A1DC5 push [ebp+sourceID] ; sourceID .text:005A1DC8 push [ebp+source] ; source .text:005A1DCB push edi ; effect .text:005A1DCC call CGameEffectImmunityToSequester::CGameEffectImmunityToSequester(Item_effect_st *,CPoint const &,long,CPoint) .text:005A1DD1 mov esi, eax .text:005A1DD3 jmp loc_5A23A1 ; jumptable 0059DF61 default case
  15. Opcode 274 is Random Phase. Not sure about the paramiters, but it most likely has to do with randomness (dice, etc.) I can check it out if needed. Relevant code: push 144h ; jumptable 0059DF61 case 274 .text:005A15A9 call operator new(uint) .text:005A15AE add esp, 4 .text:005A15B1 test eax, eax .text:005A15B3 jz loc_5A239F .text:005A15B9 mov ecx, [ebp+target] .text:005A15BC push dword ptr [ecx+4] .text:005A15BF push dword ptr [ecx] ; target .text:005A15C1 mov ecx, eax ; this .text:005A15C3 push [ebp+sourceID] ; sourceID .text:005A15C6 push [ebp+source] ; source .text:005A15C9 push edi ; effect .text:005A15CA call CGameEffectRandomPhase::CGameEffectRandomPhase(Item_effect_st *,CPoint const &,long,CPoint) .text:005A15CF mov esi, eax .text:005A15D1 jmp loc_5A23A1 ; jumptable 0059DF61 default case
×
×
  • Create New...