Path: blob/master/RSDKv5/RSDK/Scene/Legacy/v3/PlayerLegacyv3.cpp
1177 views
1RSDK::Legacy::v3::Player RSDK::Legacy::v3::playerList[LEGACY_v3_PLAYER_COUNT];2int32 RSDK::Legacy::v3::playerListPos = 0;3int32 RSDK::Legacy::v3::activePlayer = 0;4int32 RSDK::Legacy::v3::activePlayerCount = 1;56uint16 RSDK::Legacy::v3::upBuffer = 0;7uint16 RSDK::Legacy::v3::downBuffer = 0;8uint16 RSDK::Legacy::v3::leftBuffer = 0;9uint16 RSDK::Legacy::v3::rightBuffer = 0;10uint16 RSDK::Legacy::v3::jumpPressBuffer = 0;11uint16 RSDK::Legacy::v3::jumpHoldBuffer = 0;1213uint8 RSDK::Legacy::v3::nextLeaderPosID = 1;14uint8 RSDK::Legacy::v3::lastLeaderPosID = 0;1516int16 RSDK::Legacy::v3::leaderPositionBufferX[16];17int16 RSDK::Legacy::v3::leaderPositionBufferY[16];1819void RSDK::Legacy::v3::ProcessPlayerControl(Player *player)20{21switch (player->controlMode) {22default:23case CONTROLMODE_NORMAL:24player->up = stickL[CONT_P1].keyUp.down || controller[CONT_P1].keyUp.down;25player->down = stickL[CONT_P1].keyDown.down || controller[CONT_P1].keyDown.down;26player->left = stickL[CONT_P1].keyLeft.down || controller[CONT_P1].keyLeft.down;27player->right = stickL[CONT_P1].keyRight.down || controller[CONT_P1].keyRight.down;2829if (player->left && player->right) {30player->left = false;31player->right = false;32}3334player->jumpHold = controller[CONT_P1].keyA.down || controller[CONT_P1].keyB.down || controller[CONT_P1].keyC.down;35player->jumpPress = controller[CONT_P1].keyA.press || controller[CONT_P1].keyB.press || controller[CONT_P1].keyC.press;3637upBuffer <<= 1;38upBuffer |= (uint8)player->up;3940downBuffer <<= 1;41downBuffer |= (uint8)player->down;4243leftBuffer <<= 1;44leftBuffer |= (uint8)player->left;4546rightBuffer <<= 1;47rightBuffer |= (uint8)player->right;4849jumpPressBuffer <<= 1;50jumpPressBuffer |= (uint8)player->jumpPress;5152jumpHoldBuffer <<= 1;53jumpHoldBuffer |= (uint8)player->jumpHold;5455if (activePlayerCount >= 2 && !player->followPlayer1) {56upBuffer <<= 1;57upBuffer |= (uint8)player->up;5859downBuffer <<= 1;60downBuffer |= (uint8)player->down;6162leftBuffer <<= 1;63leftBuffer |= (uint8)player->left;6465rightBuffer <<= 1;66rightBuffer |= (uint8)player->right;6768jumpPressBuffer <<= 1;69jumpPressBuffer |= (uint8)player->jumpPress;7071jumpHoldBuffer <<= 1;72jumpHoldBuffer |= (uint8)player->jumpHold;7374leaderPositionBufferX[nextLeaderPosID] = player->XPos >> 16;75leaderPositionBufferY[nextLeaderPosID] = player->YPos >> 16;76nextLeaderPosID = (nextLeaderPosID + 1) & 0xF;77lastLeaderPosID = (nextLeaderPosID + 1) & 0xF;78}79break;8081case CONTROLMODE_NONE:82if (activePlayerCount >= 2 && !player->followPlayer1) {83upBuffer <<= 1;84upBuffer |= (uint8)player->up;8586downBuffer <<= 1;87downBuffer |= (uint8)player->down;8889leftBuffer <<= 1;90leftBuffer |= (uint8)player->left;9192rightBuffer <<= 1;93rightBuffer |= (uint8)player->right;9495jumpPressBuffer <<= 1;96jumpPressBuffer |= (uint8)player->jumpPress;9798jumpHoldBuffer <<= 1;99jumpHoldBuffer |= (uint8)player->jumpHold;100101leaderPositionBufferX[nextLeaderPosID] = player->XPos >> 16;102leaderPositionBufferY[nextLeaderPosID] = player->YPos >> 16;103nextLeaderPosID = (nextLeaderPosID + 1) & 0xF;104lastLeaderPosID = (nextLeaderPosID + 1) & 0xF;105}106break;107108case CONTROLMODE_SIDEKICK:109player->up = upBuffer >> 15;110player->down = downBuffer >> 15;111player->left = leftBuffer >> 15;112player->right = rightBuffer >> 15;113player->jumpPress = jumpPressBuffer >> 15;114player->jumpHold = jumpHoldBuffer >> 15;115116player->boundEntity->XPos = leaderPositionBufferX[lastLeaderPosID] << 16;117player->boundEntity->YPos = leaderPositionBufferY[lastLeaderPosID] << 16;118break;119}120}121122