mirror of
https://github.com/zeldaret/mm.git
synced 2026-06-09 20:40:42 -04:00
Play (2 NON_MATCHINGS) (#1109)
* Bring over progress from another branch
Co-authored-by: Maide <34639600+Kelebek1@users.noreply.github.com>
* cleanup, fake match Play_Init
* small fixes
* Some small cleanup
* Match func_80165460 (from debug)
* Match func_80165658
* Match func_80165DB8, func_80165DCC, func_80165DF0, func_80165E04
* Match func_80167DE4 (from debug)
* Match func_80167F0C
* Match func_80168DAC
* Matched func_80169100
* Matched func_801691F0
* import D_801DFA18
* match Play_Main thanks to debug
* cleanup
* synray does it again
* add docs from debug
* fix func_801656A4
* more docs and cleanup
* Match func_80166B30 and diff fake match in Init
* import transition docs from OoT
* Play Update, sort of
* cleanup Play_Update
* more cleanup
* slightly more docs
* small docs
* Play_Draw WIP Thanks @petrie911
* progress?
* two more matches
* format
* misc play docs
* transitions cleanup
* Motion Blur
* Transitions
* Fog
* Bombers notebook + small cleanup
* bss
* Camera Functions
* Picto functions
* Init
* MotionBlur Clean up
* Floor Surface
* Pictographs some more
* regs
* fix circular dependency problem
* Cleanup PR commits outside play
* namefixer
* PR picto
* PR audio
* PR small clean ups
* debug strings
* Picto defines
* bss
* enums
* remove void
* typedefs
* Hireso -> BombersNotebook
* bss comments
* bss and I8/I5 functions
* Smaller PR comments
* Transitions
* Combine enums
* Revert "Combine enums"
This reverts commit 0da1ebcaed.
* Fix Transition defines
* RGBA16 macros
* Unname
* worldCoverAlpha
* Rename Update and Draw
* PR review, plus annotate bug
* Clean up nonmatchings with a closer DrawGame
* Format
* New macros
* UpdateMain and DrawMain
* Fix merge
* Small cleanups from PR
* zFar
* Intensity macros
* Format
* Remove bss comments
* Compression/decompression
* Small cleanup
* Format
* More PR cleanup
* Cleanup picto stuff
* format
* Fix compression comments
* Play processes state enums DONE -> READY
* cutscene comment
* fix bss
Co-authored-by: Maide <34639600+Kelebek1@users.noreply.github.com>
Co-authored-by: engineer124 <engineer124engineer124@gmail.com>
Co-authored-by: petrie911 <pmontag@PHYS-S129.iowa.uiowa.edu>
Co-authored-by: angie <angheloalf95@gmail.com>
This commit is contained in:
+14
-14
@@ -22,7 +22,7 @@ s32 Snap_RecordPictographedActors(PlayState* play) {
|
||||
gSaveContext.save.pictoFlags1 = 0;
|
||||
|
||||
if (play->sceneId == SCENE_20SICHITAI) {
|
||||
Snap_SetFlag(PICTOGRAPH_IN_SWAMP);
|
||||
Snap_SetFlag(PICTO_VALID_IN_SWAMP);
|
||||
}
|
||||
|
||||
for (; category < ACTORCAT_MAX; category++) {
|
||||
@@ -155,43 +155,43 @@ s32 Snap_ValidatePictograph(PlayState* play, Actor* actor, s32 flag, Vec3f* pos,
|
||||
// Check distance
|
||||
distance = OLib_Vec3fDist(pos, &camera->eye);
|
||||
if ((distance < distanceMin) || (distanceMax < distance)) {
|
||||
Snap_SetFlag(PICTOGRAPH_BAD_DISTANCE);
|
||||
ret = PICTOGRAPH_BAD_DISTANCE;
|
||||
Snap_SetFlag(PICTO_VALID_BAD_DISTANCE);
|
||||
ret = PICTO_VALID_BAD_DISTANCE;
|
||||
}
|
||||
|
||||
// Check rot is facing camera?
|
||||
x = Snap_AbsS(Camera_GetCamDirPitch(camera) + rot->x);
|
||||
y = Snap_AbsS(Camera_GetCamDirYaw(camera) - BINANG_SUB(rot->y, 0x7FFF));
|
||||
if ((0 < angleRange) && ((angleRange < x) || (angleRange < y))) {
|
||||
Snap_SetFlag(PICTOGRAPH_BAD_ANGLE);
|
||||
ret |= PICTOGRAPH_BAD_ANGLE;
|
||||
Snap_SetFlag(PICTO_VALID_BAD_ANGLE);
|
||||
ret |= PICTO_VALID_BAD_ANGLE;
|
||||
}
|
||||
|
||||
// Check in capture region
|
||||
Actor_GetProjectedPos(play, pos, &projectedPos, &distance);
|
||||
// Convert to projected position to device coordinates, shift to be relative to the capture region's top-left corner
|
||||
x = (s16)PROJECTED_TO_SCREEN_X(projectedPos, distance) - PICTO_CAPTURE_REGION_TOPLEFT_X;
|
||||
y = (s16)PROJECTED_TO_SCREEN_Y(projectedPos, distance) - PICTO_CAPTURE_REGION_TOPLEFT_Y;
|
||||
x = (s16)PROJECTED_TO_SCREEN_X(projectedPos, distance) - PICTO_VALID_TOPLEFT_X;
|
||||
y = (s16)PROJECTED_TO_SCREEN_Y(projectedPos, distance) - PICTO_VALID_TOPLEFT_Y;
|
||||
|
||||
// checks if the coordinates are within the capture region
|
||||
if ((x < 0) || (x > PICTO_RESOLUTION_HORIZONTAL) || (y < 0) || (y > PICTO_RESOLUTION_VERTICAL)) {
|
||||
Snap_SetFlag(PICTOGRAPH_NOT_IN_VIEW);
|
||||
ret |= PICTOGRAPH_NOT_IN_VIEW;
|
||||
if ((x < 0) || (x > PICTO_VALID_WIDTH) || (y < 0) || (y > PICTO_VALID_HEIGHT)) {
|
||||
Snap_SetFlag(PICTO_VALID_NOT_IN_VIEW);
|
||||
ret |= PICTO_VALID_NOT_IN_VIEW;
|
||||
}
|
||||
|
||||
// Check not obscured by bg collision
|
||||
if (BgCheck_ProjectileLineTest(&play->colCtx, pos, &camera->eye, &projectedPos, &poly, true, true, true, true,
|
||||
&bgId)) {
|
||||
Snap_SetFlag(PICTOGRAPH_BEHIND_BG);
|
||||
ret |= PICTOGRAPH_BEHIND_BG;
|
||||
Snap_SetFlag(PICTO_VALID_BEHIND_BG);
|
||||
ret |= PICTO_VALID_BEHIND_BG;
|
||||
}
|
||||
|
||||
// Check not obscured by actor collision
|
||||
actors[0] = actor;
|
||||
actors[1] = &GET_PLAYER(play)->actor;
|
||||
if (CollisionCheck_LineOCCheck(play, &play->colChkCtx, pos, &camera->eye, actors, 2)) {
|
||||
Snap_SetFlag(PICTOGRAPH_BEHIND_COLLISION);
|
||||
ret |= PICTOGRAPH_BEHIND_COLLISION;
|
||||
Snap_SetFlag(PICTO_VALID_BEHIND_COLLISION);
|
||||
ret |= PICTO_VALID_BEHIND_COLLISION;
|
||||
}
|
||||
|
||||
// If all of the above checks pass, set the flag
|
||||
|
||||
Reference in New Issue
Block a user