Skip to content

Disasembler doesn't include object index for index 0 for dot notation. #2110

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
misternebula opened this issue Apr 26, 2025 · 0 comments
Open
Labels
bug Something isn't working

Comments

@misternebula
Copy link
Contributor

Describe the bug

For dot notation (https://manual.gamemaker.io/monthly/en/GameMaker_Language/GML_Overview/Addressing_Variables_In_Other_Instances.htm), using the first game object results in no asset index in the disassembly.

For example, take if (obj_choicer_old.choiced == false). This incorrectly disassembles to:

push.v choiced
pushi.e 0
cmp.i.v EQ

This is because obj_choicer_old is the first Game Object in SURVEY_PROGRAM's Game Object list.
If it was instead the fourth game object, it would correctly disassemble to:

push.v 3.choiced
pushi.e 0
cmp.i.v EQ

I'm not sure if this affects pop opcodes too, but it probably does. I've got no proof of that though, so I'll leave this issue just for push.

Reproducing steps

  • Open data.win of SURVEY_PROGRAM
  • Go to gml_Object_obj_schoollobbycutscene_Step_0
  • Go to Disassembly tab
  • Search for choiced
  • Will find push.v choiced instead of expected push.v 0.choiced

Setup Details

  • UTMT Version: 7.0.0.0, also affects 6.x.x.x and 5.x.x.x, and probably all other versions too.
  • OS: Windows 10
  • Game: All games, anything where the first Game Object is used in dot notation. Can test using SURVEY_PROGRAM
@misternebula misternebula added the bug Something isn't working label Apr 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant