| 868 | } |
| 869 | |
| 870 | static void UpdateSandyBossCam(zNPCBSandy* sandy, F32 dt) |
| 871 | { |
| 872 | S32 needToCallStart = 0; |
| 873 | xVec3 tempTarget; |
| 874 | |
| 875 | if ((zCameraIsTrackingDisabled() & 0x8) == 0) |
| 876 | { |
| 877 | needToCallStart = 1; |
| 878 | } |
| 879 | |
| 880 | zCameraDisableTracking(CO_BOSS); |
| 881 | |
| 882 | if (needToCallStart) |
| 883 | { |
| 884 | sandy->bossCam.start(globals.camera); |
| 885 | } |
| 886 | |
| 887 | if (sandy->bossFlags & 0x40) |
| 888 | { |
| 889 | if ((sandy->bossFlags & 0x2000) == 0) |
| 890 | { |
| 891 | sandy->specialBossCam.start(globals.camera); |
| 892 | } |
| 893 | |
| 894 | tempTarget.x = globals.player.ent.model->Mat->pos.x; |
| 895 | tempTarget.y = 0.0f; |
| 896 | tempTarget.z = globals.player.ent.model->Mat->pos.z; |
| 897 | sandy->specialBossCam.set_targets(tempTarget, (xVec3&)sCamSubTarget, 2.0f); |
| 898 | |
| 899 | if ((sandy->bossFlags & 0x4000)) |
| 900 | { |
| 901 | sandy->specialBossCam.update(10.0f); |
| 902 | sandy->bossFlags &= ~0x4000; |
| 903 | } |
| 904 | else |
| 905 | { |
| 906 | sandy->specialBossCam.update(dt); |
| 907 | } |
| 908 | } |
| 909 | else |
| 910 | { |
| 911 | if (sandy->bossFlags & 0x2000) |
| 912 | { |
| 913 | sandy->bossCam.start(globals.camera); |
| 914 | } |
| 915 | |
| 916 | sandy->bossCam.set_targets(*((xVec3*)&globals.player.ent.model->Mat->pos), |
| 917 | (xVec3&)sCamSubTarget, 10.0f); |
| 918 | |
| 919 | if (sandy->bossFlags & 0x4000) |
| 920 | { |
| 921 | sandy->bossCam.update(10.0f); |
| 922 | sandy->bossFlags &= ~0x4000; |
| 923 | } |
| 924 | else |
| 925 | { |
| 926 | sandy->bossCam.update(dt); |
| 927 | } |
nothing calls this directly
no test coverage detected