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:
Derek Hensley
2023-01-14 07:18:13 -08:00
committed by GitHub
parent e2b61f88e4
commit ab8d34b8dc
129 changed files with 2634 additions and 751 deletions
+14 -14
View File
@@ -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