diff --git a/src/files/setup/setupame.c b/src/files/setup/setupame.c index de4879a82..d4e3e9431 100644 --- a/src/files/setup/setupame.c +++ b/src/files/setup/setupame.c @@ -4095,42 +4095,42 @@ struct ailist ailists[] = { }; struct path paths[] = { - { path00, 0, PATHTYPE_BACKANDFORTH }, - { path01, 1, PATHTYPE_FLYING }, - { path02, 2, PATHTYPE_FLYING }, - { path03, 3, PATHTYPE_FLYING }, - { path04, 4, PATHTYPE_FLYING }, - { path05, 5, PATHTYPE_FLYING }, - { path06, 6, PATHTYPE_FLYING }, - { path07, 7, PATHTYPE_FLYING }, - { path08, 8, PATHTYPE_FLYING }, - { path09, 9, PATHTYPE_FLYING }, - { path10, 10, PATHTYPE_FLYING }, - { path11, 11, PATHTYPE_FLYING }, - { path12, 12, PATHTYPE_FLYING }, - { path13, 13, PATHTYPE_FLYING }, - { path14, 14, PATHTYPE_FLYING }, - { path15, 15, PATHTYPE_FLYING }, - { path16, 16, PATHTYPE_FLYING }, - { path17, 17, PATHTYPE_FLYING }, - { path18, 18, PATHTYPE_FLYING }, - { path19, 19, PATHTYPE_FLYING }, - { path20, 20, PATHTYPE_FLYING }, - { path21, 21, PATHTYPE_FLYING }, - { path22, 22, PATHTYPE_FLYING }, - { path23, 23, PATHTYPE_FLYING }, - { path24, 24, PATHTYPE_FLYING }, - { path25, 25, PATHTYPE_FLYING }, - { path26, 26, PATHTYPE_CIRCULAR }, - { path27, 27, PATHTYPE_BACKANDFORTH }, - { path28, 28, PATHTYPE_BACKANDFORTH }, - { path29, 29, PATHTYPE_BACKANDFORTH }, - { path30, 30, PATHTYPE_CIRCULAR }, - { path31, 31, PATHTYPE_BACKANDFORTH }, - { path32, 32, PATHTYPE_BACKANDFORTH }, - { path33, 33, PATHTYPE_BACKANDFORTH }, - { path34, 34, PATHTYPE_CIRCULAR }, - { path35, 35, PATHTYPE_BACKANDFORTH }, + { path00, 0, 0 }, + { path01, 1, PATHFLAG_FLYING }, + { path02, 2, PATHFLAG_FLYING }, + { path03, 3, PATHFLAG_FLYING }, + { path04, 4, PATHFLAG_FLYING }, + { path05, 5, PATHFLAG_FLYING }, + { path06, 6, PATHFLAG_FLYING }, + { path07, 7, PATHFLAG_FLYING }, + { path08, 8, PATHFLAG_FLYING }, + { path09, 9, PATHFLAG_FLYING }, + { path10, 10, PATHFLAG_FLYING }, + { path11, 11, PATHFLAG_FLYING }, + { path12, 12, PATHFLAG_FLYING }, + { path13, 13, PATHFLAG_FLYING }, + { path14, 14, PATHFLAG_FLYING }, + { path15, 15, PATHFLAG_FLYING }, + { path16, 16, PATHFLAG_FLYING }, + { path17, 17, PATHFLAG_FLYING }, + { path18, 18, PATHFLAG_FLYING }, + { path19, 19, PATHFLAG_FLYING }, + { path20, 20, PATHFLAG_FLYING }, + { path21, 21, PATHFLAG_FLYING }, + { path22, 22, PATHFLAG_FLYING }, + { path23, 23, PATHFLAG_FLYING }, + { path24, 24, PATHFLAG_FLYING }, + { path25, 25, PATHFLAG_FLYING }, + { path26, 26, PATHFLAG_CIRCULAR }, + { path27, 27, 0 }, + { path28, 28, 0 }, + { path29, 29, 0 }, + { path30, 30, PATHFLAG_CIRCULAR }, + { path31, 31, 0 }, + { path32, 32, 0 }, + { path33, 33, 0 }, + { path34, 34, PATHFLAG_CIRCULAR }, + { path35, 35, 0 }, { NULL, 0, 0 }, }; diff --git a/src/files/setup/setupark.c b/src/files/setup/setupark.c index 61059bd57..5a486077c 100644 --- a/src/files/setup/setupark.c +++ b/src/files/setup/setupark.c @@ -506,9 +506,9 @@ s32 path02[] = { }; struct path paths[] = { - { path00, 0, PATHTYPE_BACKANDFORTH }, - { path01, 1, PATHTYPE_BACKANDFORTH }, - { path02, 2, PATHTYPE_BACKANDFORTH }, + { path00, 0, 0 }, + { path01, 1, 0 }, + { path02, 2, 0 }, { NULL, 0, 0 }, }; diff --git a/src/files/setup/setupazt.c b/src/files/setup/setupazt.c index 605608f02..f10263767 100644 --- a/src/files/setup/setupazt.c +++ b/src/files/setup/setupazt.c @@ -362,19 +362,19 @@ s32 path12[] = { }; struct path paths[] = { - { path00, 0, PATHTYPE_BACKANDFORTH }, - { path01, 1, PATHTYPE_BACKANDFORTH }, - { path02, 2, PATHTYPE_BACKANDFORTH }, - { path03, 3, PATHTYPE_BACKANDFORTH }, - { path04, 4, PATHTYPE_BACKANDFORTH }, - { path05, 5, PATHTYPE_BACKANDFORTH }, - { path06, 6, PATHTYPE_BACKANDFORTH }, - { path07, 7, PATHTYPE_BACKANDFORTH }, - { path08, 8, PATHTYPE_BACKANDFORTH }, - { path09, 9, PATHTYPE_BACKANDFORTH }, - { path10, 10, PATHTYPE_BACKANDFORTH }, - { path11, 11, PATHTYPE_BACKANDFORTH }, - { path12, 12, PATHTYPE_BACKANDFORTH }, + { path00, 0, 0 }, + { path01, 1, 0 }, + { path02, 2, 0 }, + { path03, 3, 0 }, + { path04, 4, 0 }, + { path05, 5, 0 }, + { path06, 6, 0 }, + { path07, 7, 0 }, + { path08, 8, 0 }, + { path09, 9, 0 }, + { path10, 10, 0 }, + { path11, 11, 0 }, + { path12, 12, 0 }, { NULL, 0, 0 }, }; diff --git a/src/files/setup/setupcave.c b/src/files/setup/setupcave.c index 8359a3513..59b94ff8c 100644 --- a/src/files/setup/setupcave.c +++ b/src/files/setup/setupcave.c @@ -705,22 +705,22 @@ s32 unregistered_path1[] = { }; struct path paths[] = { - { path06, 6, PATHTYPE_BACKANDFORTH }, - { path07, 7, PATHTYPE_BACKANDFORTH }, - { path08, 8, PATHTYPE_BACKANDFORTH }, - { path09, 9, PATHTYPE_BACKANDFORTH }, - { path10, 10, PATHTYPE_BACKANDFORTH }, - { path11, 11, PATHTYPE_BACKANDFORTH }, - { path12, 12, PATHTYPE_BACKANDFORTH }, - { path13, 13, PATHTYPE_BACKANDFORTH }, - { path14, 14, PATHTYPE_BACKANDFORTH }, - { path15, 15, PATHTYPE_BACKANDFORTH }, - { path00, 0, PATHTYPE_BACKANDFORTH }, - { path01, 1, PATHTYPE_BACKANDFORTH }, - { path02, 2, PATHTYPE_BACKANDFORTH }, - { path03, 3, PATHTYPE_BACKANDFORTH }, - { path04, 4, PATHTYPE_BACKANDFORTH }, - { path05, 5, PATHTYPE_BACKANDFORTH }, + { path06, 6, 0 }, + { path07, 7, 0 }, + { path08, 8, 0 }, + { path09, 9, 0 }, + { path10, 10, 0 }, + { path11, 11, 0 }, + { path12, 12, 0 }, + { path13, 13, 0 }, + { path14, 14, 0 }, + { path15, 15, 0 }, + { path00, 0, 0 }, + { path01, 1, 0 }, + { path02, 2, 0 }, + { path03, 3, 0 }, + { path04, 4, 0 }, + { path05, 5, 0 }, { NULL, 0, 0 }, }; diff --git a/src/files/setup/setupdam.c b/src/files/setup/setupdam.c index 3747a59bb..9b9c4ea0e 100644 --- a/src/files/setup/setupdam.c +++ b/src/files/setup/setupdam.c @@ -640,11 +640,11 @@ s32 path04[] = { }; struct path paths[] = { - { path00, 0, PATHTYPE_CIRCULAR }, - { path01, 1, PATHTYPE_BACKANDFORTH }, - { path02, 2, PATHTYPE_CIRCULAR }, - { path03, 3, PATHTYPE_CIRCULAR }, - { path04, 4, PATHTYPE_CIRCULAR }, + { path00, 0, PATHFLAG_CIRCULAR }, + { path01, 1, 0 }, + { path02, 2, PATHFLAG_CIRCULAR }, + { path03, 3, PATHFLAG_CIRCULAR }, + { path04, 4, PATHFLAG_CIRCULAR }, { NULL, 0, 0 }, }; diff --git a/src/files/setup/setupdepo.c b/src/files/setup/setupdepo.c index 4285b7a05..2a20d044b 100644 --- a/src/files/setup/setupdepo.c +++ b/src/files/setup/setupdepo.c @@ -3182,10 +3182,10 @@ struct ailist ailists[] = { }; struct path paths[] = { - { path00, 0, PATHTYPE_CIRCULAR }, - { path01, 1, PATHTYPE_CIRCULAR }, - { path02, 2, PATHTYPE_CIRCULAR }, - { path03, 3, PATHTYPE_CIRCULAR }, + { path00, 0, PATHFLAG_CIRCULAR }, + { path01, 1, PATHFLAG_CIRCULAR }, + { path02, 2, PATHFLAG_CIRCULAR }, + { path03, 3, PATHFLAG_CIRCULAR }, { NULL, 0, 0 }, }; diff --git a/src/files/setup/setupdish.c b/src/files/setup/setupdish.c index eef89d2f5..15ecc9db1 100644 --- a/src/files/setup/setupdish.c +++ b/src/files/setup/setupdish.c @@ -6199,7 +6199,7 @@ struct ailist ailists[] = { }; struct path paths[] = { - { path00, 0, PATHTYPE_CIRCULAR }, + { path00, 0, PATHFLAG_CIRCULAR }, { NULL, 0, 0 }, }; diff --git a/src/files/setup/setupear.c b/src/files/setup/setupear.c index 6de5545e1..6cdc8e175 100644 --- a/src/files/setup/setupear.c +++ b/src/files/setup/setupear.c @@ -3392,20 +3392,20 @@ struct ailist ailists[] = { }; struct path paths[] = { - { path00, 0, PATHTYPE_BACKANDFORTH }, - { path01, 1, PATHTYPE_BACKANDFORTH }, - { path02, 2, PATHTYPE_BACKANDFORTH }, - { path03, 3, PATHTYPE_BACKANDFORTH }, - { path04, 4, PATHTYPE_BACKANDFORTH }, - { path05, 5, PATHTYPE_BACKANDFORTH }, - { path06, 6, PATHTYPE_BACKANDFORTH }, - { path07, 7, PATHTYPE_BACKANDFORTH }, - { path08, 8, PATHTYPE_BACKANDFORTH }, - { path09, 9, PATHTYPE_BACKANDFORTH }, - { path10, 10, PATHTYPE_CIRCULAR }, - { path11, 11, PATHTYPE_BACKANDFORTH }, - { path12, 12, PATHTYPE_BACKANDFORTH }, - { path13, 13, PATHTYPE_BACKANDFORTH }, + { path00, 0, 0 }, + { path01, 1, 0 }, + { path02, 2, 0 }, + { path03, 3, 0 }, + { path04, 4, 0 }, + { path05, 5, 0 }, + { path06, 6, 0 }, + { path07, 7, 0 }, + { path08, 8, 0 }, + { path09, 9, 0 }, + { path10, 10, PATHFLAG_CIRCULAR }, + { path11, 11, 0 }, + { path12, 12, 0 }, + { path13, 13, 0 }, { NULL, 0, 0 }, }; diff --git a/src/files/setup/setupeld.c b/src/files/setup/setupeld.c index 6b2b91821..2f8739e2f 100644 --- a/src/files/setup/setupeld.c +++ b/src/files/setup/setupeld.c @@ -3279,8 +3279,8 @@ struct ailist ailists[] = { }; struct path paths[] = { - { path00, 0, PATHTYPE_BACKANDFORTH }, - { path01, 1, PATHTYPE_BACKANDFORTH }, + { path00, 0, 0 }, + { path01, 1, 0 }, { NULL, 0, 0 }, }; diff --git a/src/files/setup/setupimp.c b/src/files/setup/setupimp.c index 56f8a3058..1545476de 100644 --- a/src/files/setup/setupimp.c +++ b/src/files/setup/setupimp.c @@ -4108,7 +4108,7 @@ struct ailist ailists[] = { }; struct path paths[] = { - { path00, 0, PATHTYPE_FLYING }, + { path00, 0, PATHFLAG_FLYING }, { NULL, 0, 0 }, }; diff --git a/src/files/setup/setuplee.c b/src/files/setup/setuplee.c index 490985b80..98d42e433 100644 --- a/src/files/setup/setuplee.c +++ b/src/files/setup/setuplee.c @@ -3875,12 +3875,12 @@ struct ailist ailists[] = { }; struct path paths[] = { - { path00, 0, PATHTYPE_BACKANDFORTH }, - { path01, 1, PATHTYPE_BACKANDFORTH }, - { path02, 2, PATHTYPE_BACKANDFORTH }, - { path03, 3, PATHTYPE_BACKANDFORTH }, - { path04, 4, PATHTYPE_BACKANDFORTH }, - { path05, 5, PATHTYPE_BACKANDFORTH }, + { path00, 0, 0 }, + { path01, 1, 0 }, + { path02, 2, 0 }, + { path03, 3, 0 }, + { path04, 4, 0 }, + { path05, 5, 0 }, { NULL, 0, 0 }, }; diff --git a/src/files/setup/setuplip.c b/src/files/setup/setuplip.c index 45fc072aa..3c6e206df 100644 --- a/src/files/setup/setuplip.c +++ b/src/files/setup/setuplip.c @@ -4823,21 +4823,21 @@ struct ailist ailists[] = { }; struct path paths[] = { - { path00, 0, PATHTYPE_BACKANDFORTH }, - { path01, 1, PATHTYPE_BACKANDFORTH }, - { path02, 2, PATHTYPE_BACKANDFORTH }, - { path03, 3, PATHTYPE_BACKANDFORTH }, - { path04, 4, PATHTYPE_BACKANDFORTH }, - { path05, 5, PATHTYPE_BACKANDFORTH }, - { path06, 6, PATHTYPE_BACKANDFORTH }, - { path07, 7, PATHTYPE_BACKANDFORTH }, - { path08, 8, PATHTYPE_BACKANDFORTH }, - { path09, 9, PATHTYPE_BACKANDFORTH }, - { path10, 10, PATHTYPE_BACKANDFORTH }, - { path11, 11, PATHTYPE_BACKANDFORTH }, - { path12, 12, PATHTYPE_BACKANDFORTH }, - { path13, 13, PATHTYPE_BACKANDFORTH }, - { path14, 14, PATHTYPE_BACKANDFORTH }, + { path00, 0, 0 }, + { path01, 1, 0 }, + { path02, 2, 0 }, + { path03, 3, 0 }, + { path04, 4, 0 }, + { path05, 5, 0 }, + { path06, 6, 0 }, + { path07, 7, 0 }, + { path08, 8, 0 }, + { path09, 9, 0 }, + { path10, 10, 0 }, + { path11, 11, 0 }, + { path12, 12, 0 }, + { path13, 13, 0 }, + { path14, 14, 0 }, { NULL, 0, 0 }, }; diff --git a/src/files/setup/setuplue.c b/src/files/setup/setuplue.c index 5992ca8b8..7e06ae6ce 100644 --- a/src/files/setup/setuplue.c +++ b/src/files/setup/setuplue.c @@ -830,39 +830,39 @@ s32 path33[] = { }; struct path paths[] = { - { path00, 0, PATHTYPE_BACKANDFORTH }, - { path01, 1, PATHTYPE_BACKANDFORTH }, - { path02, 2, PATHTYPE_CIRCULAR }, - { path03, 3, PATHTYPE_BACKANDFORTH }, - { path04, 4, PATHTYPE_BACKANDFORTH }, - { path05, 5, PATHTYPE_BACKANDFORTH }, - { path08, 8, PATHTYPE_BACKANDFORTH }, - { path09, 9, PATHTYPE_FLYING }, - { path10, 10, PATHTYPE_FLYING }, - { path11, 11, PATHTYPE_FLYING }, - { path12, 12, PATHTYPE_FLYING }, - { path13, 13, PATHTYPE_FLYING }, - { path14, 14, PATHTYPE_FLYING }, - { path15, 15, PATHTYPE_FLYING }, - { path16, 16, PATHTYPE_FLYING }, - { path17, 17, PATHTYPE_FLYING }, - { path18, 18, PATHTYPE_FLYING }, - { path19, 19, PATHTYPE_FLYING }, - { path20, 20, PATHTYPE_FLYING }, - { path21, 21, PATHTYPE_FLYING }, - { path22, 22, PATHTYPE_FLYING }, - { path23, 23, PATHTYPE_FLYING }, - { path24, 24, PATHTYPE_FLYING }, - { path25, 25, PATHTYPE_FLYING }, - { path26, 26, PATHTYPE_FLYING }, - { path27, 27, PATHTYPE_FLYING }, - { path28, 28, PATHTYPE_FLYING }, - { path29, 29, PATHTYPE_FLYING }, - { path30, 30, PATHTYPE_FLYING }, - { path31, 31, PATHTYPE_FLYING }, - { path32, 32, PATHTYPE_FLYING }, - { path33, 33, PATHTYPE_FLYING }, - { path34, 34, PATHTYPE_FLYING }, + { path00, 0, 0 }, + { path01, 1, 0 }, + { path02, 2, PATHFLAG_CIRCULAR }, + { path03, 3, 0 }, + { path04, 4, 0 }, + { path05, 5, 0 }, + { path08, 8, 0 }, + { path09, 9, PATHFLAG_FLYING }, + { path10, 10, PATHFLAG_FLYING }, + { path11, 11, PATHFLAG_FLYING }, + { path12, 12, PATHFLAG_FLYING }, + { path13, 13, PATHFLAG_FLYING }, + { path14, 14, PATHFLAG_FLYING }, + { path15, 15, PATHFLAG_FLYING }, + { path16, 16, PATHFLAG_FLYING }, + { path17, 17, PATHFLAG_FLYING }, + { path18, 18, PATHFLAG_FLYING }, + { path19, 19, PATHFLAG_FLYING }, + { path20, 20, PATHFLAG_FLYING }, + { path21, 21, PATHFLAG_FLYING }, + { path22, 22, PATHFLAG_FLYING }, + { path23, 23, PATHFLAG_FLYING }, + { path24, 24, PATHFLAG_FLYING }, + { path25, 25, PATHFLAG_FLYING }, + { path26, 26, PATHFLAG_FLYING }, + { path27, 27, PATHFLAG_FLYING }, + { path28, 28, PATHFLAG_FLYING }, + { path29, 29, PATHFLAG_FLYING }, + { path30, 30, PATHFLAG_FLYING }, + { path31, 31, PATHFLAG_FLYING }, + { path32, 32, PATHFLAG_FLYING }, + { path33, 33, PATHFLAG_FLYING }, + { path34, 34, PATHFLAG_FLYING }, { NULL, 0, 0 }, }; diff --git a/src/files/setup/setupoat.c b/src/files/setup/setupoat.c index 892464b89..a3f14553e 100644 --- a/src/files/setup/setupoat.c +++ b/src/files/setup/setupoat.c @@ -258,12 +258,12 @@ s32 path04[] = { }; struct path paths[] = { - { path00, 0, PATHTYPE_BACKANDFORTH }, - { path01, 1, PATHTYPE_BACKANDFORTH }, - { path00, 0, PATHTYPE_BACKANDFORTH }, - { path02, 2, PATHTYPE_BACKANDFORTH }, - { path03, 3, PATHTYPE_BACKANDFORTH }, - { path04, 4, PATHTYPE_BACKANDFORTH }, + { path00, 0, 0 }, + { path01, 1, 0 }, + { path00, 0, 0 }, + { path02, 2, 0 }, + { path03, 3, 0 }, + { path04, 4, 0 }, { NULL, 0, 0 }, }; diff --git a/src/files/setup/setuppam.c b/src/files/setup/setuppam.c index 122aed5ab..6b33aff12 100644 --- a/src/files/setup/setuppam.c +++ b/src/files/setup/setuppam.c @@ -4862,15 +4862,15 @@ struct ailist ailists[] = { }; struct path paths[] = { - { path02, 2, PATHTYPE_BACKANDFORTH }, - { path03, 3, PATHTYPE_BACKANDFORTH }, - { path04, 4, PATHTYPE_BACKANDFORTH }, - { path05, 5, PATHTYPE_BACKANDFORTH }, - { path06, 6, PATHTYPE_BACKANDFORTH }, - { path07, 7, PATHTYPE_BACKANDFORTH }, - { path08, 8, PATHTYPE_BACKANDFORTH }, - { path09, 9, PATHTYPE_BACKANDFORTH }, - { path10, 10, PATHTYPE_BACKANDFORTH }, + { path02, 2, 0 }, + { path03, 3, 0 }, + { path04, 4, 0 }, + { path05, 5, 0 }, + { path06, 6, 0 }, + { path07, 7, 0 }, + { path08, 8, 0 }, + { path09, 9, 0 }, + { path10, 10, 0 }, { NULL, 0, 0 }, }; diff --git a/src/files/setup/setuppete.c b/src/files/setup/setuppete.c index 33901e74c..daa44ba5e 100644 --- a/src/files/setup/setuppete.c +++ b/src/files/setup/setuppete.c @@ -3322,20 +3322,20 @@ struct ailist ailists[] = { }; struct path paths[] = { - { path00, 0, PATHTYPE_BACKANDFORTH }, - { path01, 1, PATHTYPE_BACKANDFORTH }, - { path02, 2, PATHTYPE_BACKANDFORTH }, - { path03, 3, PATHTYPE_BACKANDFORTH }, - { path04, 4, PATHTYPE_BACKANDFORTH }, - { path05, 5, PATHTYPE_BACKANDFORTH }, - { path06, 6, PATHTYPE_BACKANDFORTH }, - { path07, 7, PATHTYPE_BACKANDFORTH }, - { path08, 8, PATHTYPE_BACKANDFORTH }, - { path09, 9, PATHTYPE_BACKANDFORTH }, - { path10, 10, PATHTYPE_BACKANDFORTH }, - { path11, 11, PATHTYPE_BACKANDFORTH }, - { path12, 12, PATHTYPE_BACKANDFORTH }, - { path13, 13, PATHTYPE_BACKANDFORTH }, + { path00, 0, 0 }, + { path01, 1, 0 }, + { path02, 2, 0 }, + { path03, 3, 0 }, + { path04, 4, 0 }, + { path05, 5, 0 }, + { path06, 6, 0 }, + { path07, 7, 0 }, + { path08, 8, 0 }, + { path09, 9, 0 }, + { path10, 10, 0 }, + { path11, 11, 0 }, + { path12, 12, 0 }, + { path13, 13, 0 }, { NULL, 0, 0 }, }; diff --git a/src/files/setup/setuprit.c b/src/files/setup/setuprit.c index 8d5af14fe..caef9bcde 100644 --- a/src/files/setup/setuprit.c +++ b/src/files/setup/setuprit.c @@ -4090,9 +4090,9 @@ struct ailist ailists[] = { }; struct path paths[] = { - { path00, 0, PATHTYPE_BACKANDFORTH }, - { path01, 1, PATHTYPE_BACKANDFORTH }, - { path02, 2, PATHTYPE_BACKANDFORTH }, + { path00, 0, 0 }, + { path01, 1, 0 }, + { path02, 2, 0 }, { NULL, 0, 0 }, }; diff --git a/src/files/setup/setupsev.c b/src/files/setup/setupsev.c index 6e6c5b005..d0e62ebc4 100644 --- a/src/files/setup/setupsev.c +++ b/src/files/setup/setupsev.c @@ -850,21 +850,21 @@ s32 path14[] = { }; struct path paths[] = { - { path00, 0, PATHTYPE_BACKANDFORTH }, - { path01, 1, PATHTYPE_BACKANDFORTH }, - { path02, 2, PATHTYPE_BACKANDFORTH }, - { path03, 3, PATHTYPE_BACKANDFORTH }, - { path04, 4, PATHTYPE_BACKANDFORTH }, - { path05, 5, PATHTYPE_BACKANDFORTH }, - { path06, 6, PATHTYPE_BACKANDFORTH }, - { path07, 7, PATHTYPE_BACKANDFORTH }, - { path08, 8, PATHTYPE_BACKANDFORTH }, - { path09, 9, PATHTYPE_BACKANDFORTH }, - { path10, 10, PATHTYPE_BACKANDFORTH }, - { path11, 11, PATHTYPE_BACKANDFORTH }, - { path12, 12, PATHTYPE_BACKANDFORTH }, - { path13, 13, PATHTYPE_BACKANDFORTH }, - { path14, 14, PATHTYPE_BACKANDFORTH }, + { path00, 0, 0 }, + { path01, 1, 0 }, + { path02, 2, 0 }, + { path03, 3, 0 }, + { path04, 4, 0 }, + { path05, 5, 0 }, + { path06, 6, 0 }, + { path07, 7, 0 }, + { path08, 8, 0 }, + { path09, 9, 0 }, + { path10, 10, 0 }, + { path11, 11, 0 }, + { path12, 12, 0 }, + { path13, 13, 0 }, + { path14, 14, 0 }, { NULL, 0, 0 }, }; diff --git a/src/files/setup/setupwax.c b/src/files/setup/setupwax.c index 564b5a46e..f36b0681d 100644 --- a/src/files/setup/setupwax.c +++ b/src/files/setup/setupwax.c @@ -956,44 +956,44 @@ s32 path29[] = { }; struct path paths[] = { - { path00, 0, PATHTYPE_BACKANDFORTH }, - { path01, 1, PATHTYPE_FLYING }, - { path02, 2, PATHTYPE_FLYING }, - { path03, 3, PATHTYPE_FLYING }, - { path04, 4, PATHTYPE_FLYING }, - { path05, 5, PATHTYPE_FLYING }, - { path06, 6, PATHTYPE_FLYING }, - { path07, 7, PATHTYPE_FLYING }, - { path08, 8, PATHTYPE_FLYING }, - { path09, 9, PATHTYPE_FLYING }, - { path10, 10, PATHTYPE_FLYING }, - { path11, 11, PATHTYPE_FLYING }, - { path12, 12, PATHTYPE_FLYING }, - { path13, 13, PATHTYPE_FLYING }, - { path14, 14, PATHTYPE_FLYING }, - { path15, 15, PATHTYPE_FLYING }, - { path16, 16, PATHTYPE_FLYING }, - { path17, 17, PATHTYPE_FLYING }, - { path18, 18, PATHTYPE_FLYING }, - { path19, 19, PATHTYPE_FLYING }, - { path20, 20, PATHTYPE_FLYING }, - { path21, 21, PATHTYPE_FLYING }, - { path22, 22, PATHTYPE_FLYING }, - { path23, 23, PATHTYPE_FLYING }, - { path24, 24, PATHTYPE_FLYING }, - { path25, 25, PATHTYPE_FLYING }, - { path26, 26, PATHTYPE_CIRCULAR }, - { path27, 27, PATHTYPE_BACKANDFORTH }, - { path28, 28, PATHTYPE_BACKANDFORTH }, - { path29, 29, PATHTYPE_BACKANDFORTH }, - { path30, 30, PATHTYPE_CIRCULAR }, - { path31, 31, PATHTYPE_BACKANDFORTH }, - { path32, 32, PATHTYPE_BACKANDFORTH }, - { path33, 33, PATHTYPE_BACKANDFORTH }, - { path34, 34, PATHTYPE_CIRCULAR }, - { path35, 35, PATHTYPE_CIRCULAR }, - { path36, 36, PATHTYPE_CIRCULAR }, - { path37, 37, PATHTYPE_BACKANDFORTH }, + { path00, 0, 0 }, + { path01, 1, PATHFLAG_FLYING }, + { path02, 2, PATHFLAG_FLYING }, + { path03, 3, PATHFLAG_FLYING }, + { path04, 4, PATHFLAG_FLYING }, + { path05, 5, PATHFLAG_FLYING }, + { path06, 6, PATHFLAG_FLYING }, + { path07, 7, PATHFLAG_FLYING }, + { path08, 8, PATHFLAG_FLYING }, + { path09, 9, PATHFLAG_FLYING }, + { path10, 10, PATHFLAG_FLYING }, + { path11, 11, PATHFLAG_FLYING }, + { path12, 12, PATHFLAG_FLYING }, + { path13, 13, PATHFLAG_FLYING }, + { path14, 14, PATHFLAG_FLYING }, + { path15, 15, PATHFLAG_FLYING }, + { path16, 16, PATHFLAG_FLYING }, + { path17, 17, PATHFLAG_FLYING }, + { path18, 18, PATHFLAG_FLYING }, + { path19, 19, PATHFLAG_FLYING }, + { path20, 20, PATHFLAG_FLYING }, + { path21, 21, PATHFLAG_FLYING }, + { path22, 22, PATHFLAG_FLYING }, + { path23, 23, PATHFLAG_FLYING }, + { path24, 24, PATHFLAG_FLYING }, + { path25, 25, PATHFLAG_FLYING }, + { path26, 26, PATHFLAG_CIRCULAR }, + { path27, 27, 0 }, + { path28, 28, 0 }, + { path29, 29, 0 }, + { path30, 30, PATHFLAG_CIRCULAR }, + { path31, 31, 0 }, + { path32, 32, 0 }, + { path33, 33, 0 }, + { path34, 34, PATHFLAG_CIRCULAR }, + { path35, 35, PATHFLAG_CIRCULAR }, + { path36, 36, PATHFLAG_CIRCULAR }, + { path37, 37, 0 }, { NULL, 0, 0 }, }; diff --git a/src/game/chr/chraction.c b/src/game/chr/chraction.c index 94f89c9ca..05c5b782e 100644 --- a/src/game/chr/chraction.c +++ b/src/game/chr/chraction.c @@ -8763,79 +8763,84 @@ void chrGoPosAdvanceWaypoint(struct chrdata *chr) chrGoPosInitExpensive(chr); } -GLOBAL_ASM( -glabel func0f0373dc -/* f0373dc: 8c830030 */ lw $v1,0x30($a0) -/* f0373e0: 04c10004 */ bgez $a2,.L0f0373f4 -/* f0373e4: 8ca70000 */ lw $a3,0x0($a1) -/* f0373e8: 2cee0001 */ sltiu $t6,$a3,0x1 -/* f0373ec: 01c03825 */ or $a3,$t6,$zero -/* f0373f0: 00063023 */ negu $a2,$a2 -.L0f0373f4: -/* f0373f4: 58c00028 */ blezl $a2,.L0f037498 -/* f0373f8: aca70000 */ sw $a3,0x0($a1) -.L0f0373fc: -/* f0373fc: 10e00014 */ beqz $a3,.L0f037450 -/* f037400: 24c6ffff */ addiu $a2,$a2,-1 -/* f037404: 8c82002c */ lw $v0,0x2c($a0) -/* f037408: 24630001 */ addiu $v1,$v1,0x1 -/* f03740c: 0003c080 */ sll $t8,$v1,0x2 -/* f037410: 8c4f0000 */ lw $t7,0x0($v0) -/* f037414: 01f8c821 */ addu $t9,$t7,$t8 -/* f037418: 8f290000 */ lw $t1,0x0($t9) -/* f03741c: 0521001b */ bgez $t1,.L0f03748c -/* f037420: 00000000 */ sll $zero,$zero,0x0 -/* f037424: 904a0005 */ lbu $t2,0x5($v0) -/* f037428: 2463fffe */ addiu $v1,$v1,-2 -/* f03742c: 314b0001 */ andi $t3,$t2,0x1 -/* f037430: 11600003 */ beqz $t3,.L0f037440 -/* f037434: 00000000 */ sll $zero,$zero,0x0 -/* f037438: 10000014 */ beqz $zero,.L0f03748c -/* f03743c: 00001825 */ or $v1,$zero,$zero -.L0f037440: -/* f037440: 04610012 */ bgez $v1,.L0f03748c -/* f037444: 00003825 */ or $a3,$zero,$zero -/* f037448: 10000010 */ beqz $zero,.L0f03748c -/* f03744c: 00001825 */ or $v1,$zero,$zero -.L0f037450: -/* f037450: 2463ffff */ addiu $v1,$v1,-1 -/* f037454: 0461000d */ bgez $v1,.L0f03748c -/* f037458: 00000000 */ sll $zero,$zero,0x0 -/* f03745c: 8c82002c */ lw $v0,0x2c($a0) -/* f037460: 24030001 */ addiu $v1,$zero,0x1 -/* f037464: 904c0005 */ lbu $t4,0x5($v0) -/* f037468: 94480006 */ lhu $t0,0x6($v0) -/* f03746c: 318d0001 */ andi $t5,$t4,0x1 -/* f037470: 11a00003 */ beqz $t5,.L0f037480 -/* f037474: 2508ffff */ addiu $t0,$t0,-1 -/* f037478: 10000004 */ beqz $zero,.L0f03748c -/* f03747c: 01001825 */ or $v1,$t0,$zero -.L0f037480: -/* f037480: 1d000002 */ bgtz $t0,.L0f03748c -/* f037484: 24070001 */ addiu $a3,$zero,0x1 -/* f037488: 01001825 */ or $v1,$t0,$zero -.L0f03748c: -/* f03748c: 1cc0ffdb */ bgtz $a2,.L0f0373fc -/* f037490: 00000000 */ sll $zero,$zero,0x0 -/* f037494: aca70000 */ sw $a3,0x0($a1) -.L0f037498: -/* f037498: 03e00008 */ jr $ra -/* f03749c: 00601025 */ or $v0,$v1,$zero -); +/** + * Determines which step index the chr will be at given their current index, the + * number of steps to take and in which direction (forward or back). + * + * Returns the step index and populates *forward with true or false depending on + * whether the chr will be traversing the path in the forward direction at that + * point. + */ +s32 chrPatrolCalculateStep(struct chrdata *chr, bool *forward, s32 numsteps) +{ + s32 nextstep = chr->act_patrol.nextstep; + bool isforward = *forward; -s16 chrPatrolGetCurPadNum(struct chrdata *chr, bool arg1) + if (numsteps < 0) { + isforward = !isforward; + numsteps = -numsteps; + } + + while (numsteps > 0) { + numsteps--; + + if (isforward) { + nextstep++; + + if (chr->act_patrol.path->pads[nextstep] < 0) { + // Reached the end of the list + if (chr->act_patrol.path->flags & PATHFLAG_CIRCULAR) { + nextstep = 0; + } else { + isforward = false; + nextstep -= 2; + + if (nextstep < 0) { + nextstep = 0; + } + } + } + } else { + nextstep--; + + if (nextstep < 0) { + // Reached the start of the list + if (chr->act_patrol.path->flags & PATHFLAG_CIRCULAR) { + nextstep = chr->act_patrol.path->len - 1; + } else { + isforward = true; + nextstep = 1; + + if (chr->act_patrol.path->len - 1 <= 0) { + nextstep = chr->act_patrol.path->len - 1; + } + } + } + } + } + + *forward = isforward; + + return nextstep; +} + +/** + * Determines which pad number the chr will be at given their current index and + * the number of steps to take. + */ +s16 chrPatrolCalculatePadNum(struct chrdata *chr, s32 numsteps) { s32 *padnumptr; - u32 sp32 = chr->act_patrol.unk034; - s32 nodeindex = func0f0373dc(chr, &sp32, arg1); - padnumptr = &chr->act_patrol.path->pads[nodeindex]; + bool forward = chr->act_patrol.forward; + s32 step = chrPatrolCalculateStep(chr, &forward, numsteps); + padnumptr = &chr->act_patrol.path->pads[step]; return *padnumptr; } void chrPatrolGetCurWaypointInfoWithFlags(struct chrdata *chr, struct coord *pos, s16 *rooms, u32 *flags) { - s32 padnum = chrPatrolGetCurPadNum(chr, false); + s32 padnum = chrPatrolCalculatePadNum(chr, 0); struct pad pad; padUnpack(padnum, PADFIELD_POS | PADFIELD_ROOM | PADFIELD_FLAGS, &pad); @@ -8870,7 +8875,7 @@ void func0f037580(struct chrdata *chr) void func0f0375b0(struct chrdata *chr) { - s32 nextstep = func0f0373dc(chr, &chr->act_patrol.unk034, true); + s32 nextstep = chrPatrolCalculateStep(chr, &chr->act_patrol.forward, 1); chr->act_patrol.nextstep = nextstep; chr->patrolnextstep = nextstep; @@ -23588,11 +23593,11 @@ glabel chrTickPatrol /* f0475d8: 13000011 */ beqz $t8,.L0f047620 .L0f0475dc: /* f0475dc: 02002025 */ or $a0,$s0,$zero -/* f0475e0: 0fc0dd28 */ jal chrPatrolGetCurPadNum +/* f0475e0: 0fc0dd28 */ jal chrPatrolCalculatePadNum /* f0475e4: 00002825 */ or $a1,$zero,$zero /* f0475e8: a7a20034 */ sh $v0,0x34($sp) /* f0475ec: 02002025 */ or $a0,$s0,$zero -/* f0475f0: 0fc0dd28 */ jal chrPatrolGetCurPadNum +/* f0475f0: 0fc0dd28 */ jal chrPatrolCalculatePadNum /* f0475f4: 24050001 */ addiu $a1,$zero,0x1 /* f0475f8: 87b90034 */ lh $t9,0x34($sp) /* f0475fc: 02002025 */ or $a0,$s0,$zero diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index e2d13ae55..bce2b8ea9 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -5064,7 +5064,7 @@ bool aiHovercarBeginPath(void) struct chopperobj *chopper = chopperFromHovercar(g_Vars.hovercar); g_Vars.hovercar->path = path; g_Vars.hovercar->nextstep = 0; - g_Vars.hovercar->path->type |= PATHTYPE_4; + g_Vars.hovercar->path->flags |= PATHFLAG_04; if (chopper) { chopper->targetvisible = false; diff --git a/src/include/constants.h b/src/include/constants.h index 644401223..0d88d4c2a 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -2165,10 +2165,9 @@ #define PADFLAG_8000 0x8000 #define PADFLAG_10000 0x10000 -#define PATHTYPE_BACKANDFORTH 0 -#define PATHTYPE_CIRCULAR 1 -#define PATHTYPE_FLYING 2 -#define PATHTYPE_4 4 +#define PATHFLAG_CIRCULAR 1 +#define PATHFLAG_FLYING 2 +#define PATHFLAG_04 4 #define PAUSEMODE_UNPAUSED 0 #define PAUSEMODE_1 1 diff --git a/src/include/game/chr/chraction.h b/src/include/game/chr/chraction.h index 2aa9690a1..f70d95149 100644 --- a/src/include/game/chr/chraction.h +++ b/src/include/game/chr/chraction.h @@ -72,8 +72,8 @@ s32 func0f037124(struct chrdata *chr); void chrGoPosConsiderRestart(struct chrdata *chr); void chrGoPosInitExpensive(struct chrdata *chr); void chrGoPosAdvanceWaypoint(struct chrdata *chr); -s32 func0f0373dc(struct chrdata *chr, u32 *arg1, bool arg2); -s16 chrPatrolGetCurPadNum(struct chrdata *chr, bool arg1); +s32 chrPatrolCalculateStep(struct chrdata *chr, bool *forward, s32 numsteps); +s16 chrPatrolCalculatePadNum(struct chrdata *chr, s32 numsteps); void chrPatrolGetCurWaypointInfoWithFlags(struct chrdata *chr, struct coord *pos, s16 *rooms, u32 *flags); void func0f037580(struct chrdata *chr); void func0f0375b0(struct chrdata *chr); diff --git a/src/include/types.h b/src/include/types.h index b2ba91009..f816a1eca 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -553,7 +553,7 @@ struct waydata { struct act_patrol { /*0x02c*/ struct path *path; /*0x030*/ s32 nextstep; - /*0x034*/ u32 unk034; + /*0x034*/ bool forward; /*0x038*/ struct waydata waydata; }; @@ -2703,9 +2703,10 @@ struct ailist { }; struct path { - s32 *pads; - u8 id; - u8 type; + /*0x00*/ s32 *pads; + /*0x04*/ u8 id; + /*0x05*/ u8 flags; + /*0x06*/ u16 len; }; struct coverdefinition {