Dennis Duda
bb0e2ba156
Updated the workspace file to actually build as debug
8 years ago
Dennis Duda
ad59011c64
Shuffled things around in `InitMonster` to make the ordering closer to the beta, and making it binary exact
8 years ago
Anders Jenbo
43f5295170
Update VS6 folder
8 years ago
Dennis Duda
ad0bf6acfc
Cleaned up `InitMonsterGFX` by changing the signature of LoadMissileGFX to fit.
8 years ago
Dennis Duda
16a576cd5b
Brought `GetLevelMTypes` very close to binary exact
8 years ago
Dennis Duda
cf81adbd47
Minor adjustments to `InitLevelMonsters` and `AddMonsterType`
8 years ago
Dennis Duda
4461f657c3
Made `InitMonsterTRN` binary exact.
8 years ago
Anders Jenbo
71f890a29b
Add option to generate pdb file for devilution-comparer
8 years ago
Dennis Duda
91b6568ef9
Fixed CheckInvCut to be binary exact now with the new compiler version
8 years ago
Dennis Duda
f5a4d0a2ec
Reordered assignments in `NewPlrAnim` to be closer to the beta. Still binary exact with the new compiler
8 years ago
Dennis Duda
2f2d519ec7
Added missing enum values, removed codegen TODOs (fixed with new compiler) - now binary exact!
8 years ago
Dennis Duda
d45a175064
Fixed `CreatePlayer` to now be binary exact!
8 years ago
Dennis Duda
0ba52840b4
Use `UINT64` instead of `unsigned __int64`, more in line with uses of `DWORD`
8 years ago
Dennis Duda
0508308eba
Fixed missing cast for literal `1` to UINT64
8 years ago
Dennis Duda
22718733d0
Fixed nasty bug in `CalcPlrItemVals`, now binary exact!
8 years ago
Dennis Duda
59b4635a9a
Updated readme with new, correct compiler version
8 years ago
Dennis Duda
07b5dc3939
Cleaned up `inv_update_rem_item`, `RemoveInvItem`, `RemoveSpdBarItem`, `CheckInvItem`, `CheckInvScrn`, `CheckItemStats`
...
All relatively simple and/or use code from other functions already cleaned up. Now binary exact except for the small codegen differences outlined in https://github.com/diasurgical/devil-nightly/issues/15
8 years ago
Dennis Duda
a061f6d6f0
Cleaned up `CheckInvSwap` (0x3B6 → 0x390, orig: 0x373)
...
Pretty close to the original binary except for the first loop, which generates differently. (TODO comment added) There are also some questionable double address calculations, which hopfully clear up when the loop is fixed as well.
Also added enums `inv_body_loc` and `inv_xy_slot` to clean up a lot of magic numbers.
8 years ago
Dennis Duda
2f25466ed6
Cleaned up `CheckInvSwap`
...
Now binary exact except for the usual `xor; inc` vs `push 1; pop` switch.
Updated the type of `_iIdentified` to `BOOL` as well (since every write to it actually is 0 or 1).
8 years ago
Dennis Duda
4120348056
Switched all pre-increments to post-increments, added some spacing
8 years ago
Anders Jenbo
e750efcfce
Clean up NextPlrLevel
8 years ago
Dennis Duda
3daee19605
Merge remote-tracking branch 'devilution/master'
8 years ago
galaxyhaxz
d991f63b16
Fix type of screen_buf_end ( #184 )
8 years ago
galaxyhaxz
8381807e90
Fix data type in gendung ( #183 )
8 years ago
Anders Jenbo
2e383d6810
Minor clean ups for player.cpp
8 years ago
Dennis Duda
b6baa965bb
Revert "Switched back `NewCursor` to the original name `j_SetCursor`"
...
This reverts commit 4c93cca082 .
NewCursor was the actual name, j_<function> are just remaining
reversing names
8 years ago
Dennis Duda
0b29cbb97b
Reverted `MAX_PLRS` to raw literal without unsigned annotation
8 years ago
Dennis Duda
4c93cca082
Switched back `NewCursor` to the original name `j_SetCursor`
8 years ago
Dennis Duda
565a4b8bce
Flipped back the leveltype check
...
:S
8 years ago
Dennis Duda
9e18f07d5b
Cleaned up the if branches further, removed `pAnims` var so that register and instruction generation comes very close
8 years ago
Anders Jenbo
cd99c0b800
Clean up player.cpp SetPlrAnims
8 years ago
Dennis Duda
b34d5dbe85
Merge remote-tracking branch 'devilution/master'
8 years ago
Dennis Duda
3577cfe747
Reordered switches to normal order
8 years ago
Dennis Duda
5d1dd0e934
Added enum value for `_iCurs` assignement
8 years ago
Dennis Duda
45303c98b1
Updated cleanup of `CreatePlrItems`:
...
- Now 99% accurate (can't get the last `GetPlrHandSeed` call in the switch to optimize the way it is in the binary, TODO for that added)
- Switched `_ui_classes` enum members out with `plr_classes` ones
- Added TODO tags for missing debug logic from the 1.00 build
8 years ago
Dennis Duda
84617bc1cc
Cleaned up `CreatePlrItems`.
8 years ago
Dennis Duda
05d2cbadb2
Added missing PlayerStruct change
8 years ago
Dennis Duda
9770783f41
Cleaned up `CreatePlayer` to be only one instruction off!
...
The devilution code generates one additional `cdq` instruction, the rest is perfect...
8 years ago
Dennis Duda
4ae7211fa0
Cleaned up `CreatePlayer`.
...
This is now as close as it gets without switching to enum types/parameters everywhere, so the compiler can optimize all accesses/checks accordingly. This is especially noticeable in the way the code for the switch is generated (line 775). In the original binary you can see it does weird stuff if c is not one of the classes' enum value (probably due to optimization since the switch should be exhaustive).
I've tried switching the type of c to _ui_classes, also removing the UI_NUM_CLASSES value to see if that'd be enough to let it generate the optimized code, but nope, seems like we need to change it all at once. Currently, _pClass is a char, but an enum value would fit there as well, size-wise (alignment).
That's also why I'm guessing there had to be another enum for player classes, without the UI_NUM_CLASSES value...
8 years ago
galaxyhaxz
1ec606131c
render.cpp -> add bug notes
8 years ago
galaxyhaxz
8a4196fe76
render.cpp -> remove all garbage vars
8 years ago
galaxyhaxz
d2f109801c
render.cpp -> remove last asm and cleanup
8 years ago
galaxyhaxz
14a0241d4d
render.cpp -> take out the trash
8 years ago
galaxyhaxz
b62d9c72c4
Update scrollrt.cpp
8 years ago
Anders Jenbo
71c4c71796
Clean up player NewPlrAnim and ClearPlrPVars
8 years ago
Dennis Duda
59b841c450
Merge remote-tracking branch 'devilution/master'
8 years ago
galaxyhaxz
5abc4058a0
render.cpp -> add comments on cel type
8 years ago
galaxyhaxz
60c065ca93
render.cpp -> i don't even remember
8 years ago
Dennis Duda
c9c5acb859
Merge remote-tracking branch 'devilution/master'
8 years ago
Dennis Duda
c056e67de7
Some minor adjustments from more asm comparison work
8 years ago