Advertisement
dragonbane

Dmap Open

May 9th, 2021 (edited)
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. Probably boot:
  2. dMeter_fmapHIO_c::dMeter_fmapHIO_c
  3. g_fmapHIO.mOpenFrame (dMeter_fmapHIO_c)
  4.  
  5. dMw_c
  6. unsigned __int8 mButtonStatus;
  7. unsigned __int8 mWindowStatus;
  8. unsigned __int8 mShowFlag;
  9.  
  10. dMeter2Info_c
  11. unsigned __int16 mGameStatus;
  12. unsigned __int8 mWindowStatus;
  13. unsigned __int8 mMapStatus; //This is the important one. Is 2 if d-pad map was just scheduled, 3 for Midna map, otherwise mostly 1 if minimap is expanded, 0 when collapsed
  14. unsigned __int8 mWarpStatus;
  15.  
  16. Always:
  17. dMw_c::execute
  18. dMw_c::key_wait_proc
  19.  
  20. When scheduled:
  21. dMeter2Info_c->mWindowStatus set to 2 or 3
  22.  
  23. Required to advance:
  24. isEventCheck returns false
  25.  
  26.  
  27. dMw_c->mWindowStatus set to 7 (this does not happen if UMD is done) and dMw_c::dMw_fmap_create triggered (0x801fae68)
  28.  
  29. Relevant:
  30. dMeter2Info_getMapStatus = dMeter2Info_c::getMapStatus(&g_meter2_info) = return dMeter2Info_c->mMapStatus;
  31.  
  32. UMD:
  33. !mDoCPd_c::getTrigA(0) && !mDoCPd_c::getTrigB(0)
  34.  
  35.  
  36. Next Loop:
  37. dMw_c::execute
  38. dMw_c::fmap_open_init
  39. dMw_c::fmap_open_proc
  40. dMenu_Fmap_c::isOpen
  41. dMenu_Fmap_c::create(dMenu_Fmap_c *this);
  42.  
  43.  
  44. Approach:
  45. -dMeter2Info_c->mWindowStatus != 2 or 3 (reset tool)
  46. -dMeter2Info_c->mWindowStatus == 2 or 3 (start frame timer, if A or B gets pressed now before isEventCheck == false, count as early press)
  47. -if isEventCheck == false, ensure A or B is pressed to get UMD
  48. -Next frame check if the opposite button is pressed to get UMD for real
  49. -If missed, start timer for late presses
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement