MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / DoControllerMovement

Function DoControllerMovement

Descent3/Controls.cpp:887–990  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

885// controller element stataes.
886
887void DoControllerMovement(game_controls *controls) {
888 ct_packet ctl_x, ctl_y, ctl_z, ctl_p, ctl_b, ctl_h;
889 ct_packet ctl_povl, ctl_povr, ctl_povu, ctl_povd, ctl_fb, ctl_rb;
890 ct_packet ctl_afterburn;
891 ct_packet ctl_pub, ctl_pdb, ctl_hlb, ctl_hrb, ctl_blb, ctl_brb;
892
893 // read controls
894 Controller->get_packet(ctfFORWARD_THRUSTAXIS, &ctl_z);
895 Controller->get_packet(ctfUP_THRUSTAXIS, &ctl_y);
896 Controller->get_packet(ctfRIGHT_THRUSTAXIS, &ctl_x);
897 Controller->get_packet(ctfPITCH_DOWNAXIS, &ctl_p);
898 Controller->get_packet(ctfBANK_RIGHTAXIS, &ctl_b);
899 Controller->get_packet(ctfHEADING_RIGHTAXIS, &ctl_h);
900 Controller->get_packet(ctfUP_BUTTON, &ctl_povu);
901 Controller->get_packet(ctfDOWN_BUTTON, &ctl_povd);
902 Controller->get_packet(ctfRIGHT_BUTTON, &ctl_povr);
903 Controller->get_packet(ctfLEFT_BUTTON, &ctl_povl);
904 Controller->get_packet(ctfFORWARD_BUTTON, &ctl_fb);
905 Controller->get_packet(ctfREVERSE_BUTTON, &ctl_rb);
906 Controller->get_packet(ctfAFTERBURN_BUTTON, &ctl_afterburn);
907 Controller->get_packet(ctfHEADING_LEFTBUTTON, &ctl_hlb);
908 Controller->get_packet(ctfHEADING_RIGHTBUTTON, &ctl_hrb);
909 Controller->get_packet(ctfPITCH_UPBUTTON, &ctl_pub);
910 Controller->get_packet(ctfPITCH_DOWNBUTTON, &ctl_pdb);
911 Controller->get_packet(ctfBANK_LEFTBUTTON, &ctl_blb);
912 Controller->get_packet(ctfBANK_RIGHTBUTTON, &ctl_brb);
913
914 // check for joystick movement
915 // mprintf(0, "p:%f h:%f b:%f\n", ctl_p.value, ctl_h.value, ctl_b.value);
916 // mprintf(0, "u:%d d:%d l:%d r:%d\n", (int)ctl_povu.value, (int)ctl_povd.value, (int)ctl_povl.value, (int)ctl_povr.value);
917
918 // do x and y thrust
919 controls->sideways_thrust += ctl_x.value;
920 controls->vertical_thrust += -ctl_y.value;
921
922 // invert throttle alue for real flight model controls
923 controls->forward_thrust += -ctl_z.value;
924
925 // do banking
926 if (controls->toggle_bank) {
927 controls->bank_thrust += -ctl_h.value;
928 } else {
929 controls->bank_thrust += -ctl_b.value;
930 }
931
932 // do slide if toggled
933 if (controls->toggle_slide) {
934 controls->sideways_thrust += ctl_h.value;
935 if ((ctl_p.flags & CTPK_MOUSE) && !FindArg("-invertmouseslide")) {
936 controls->vertical_thrust += (-ctl_p.value);
937 } else {
938 controls->vertical_thrust += ctl_p.value;
939 }
940 }
941
942 // do standard pitch and heading.
943 if (!controls->toggle_slide && !controls->toggle_bank) {
944 controls->pitch_thrust += -ctl_p.value;

Callers 1

DoMovementFunction · 0.85

Calls 2

FindArgFunction · 0.70
get_packetMethod · 0.45

Tested by

no test coverage detected