diff --git a/AxibugEmuOnline.Server/Manager/RoomManager.cs b/AxibugEmuOnline.Server/Manager/RoomManager.cs index 95880efc..87646756 100644 --- a/AxibugEmuOnline.Server/Manager/RoomManager.cs +++ b/AxibugEmuOnline.Server/Manager/RoomManager.cs @@ -735,8 +735,9 @@ namespace AxibugEmuOnline.Server /// 按照SlotIdx设置Input /// /// - void SetInputDataBySlotIdx(uint slotIdx, ushort val) + void SetInputDataBySlotIdx(uint slotIdx, ServerInputSnapShot data) { + ushort val = 0; switch (GameRomPlatformType) { case RomPlatformType.Cps1: @@ -745,6 +746,14 @@ namespace AxibugEmuOnline.Server case RomPlatformType.Igs: case RomPlatformType.ArcadeOld: { + switch (slotIdx) + { + case 0: val = data.p1_ushort; break; + case 1: val = data.p2_ushort; break; + case 2: val = data.p3_ushort; break; + case 4: val = data.p4_ushort; break; + } + //ushort 类型作为单个玩家操作 switch (slotIdx) { @@ -757,6 +766,13 @@ namespace AxibugEmuOnline.Server break; default: { + switch (slotIdx) + { + case 0: val = data.p1_byte; break; + case 1: val = data.p2_byte; break; + case 2: val = data.p3_byte; break; + case 4: val = data.p4_byte; break; + } //byte 类型作为单个玩家操作 switch (slotIdx) { @@ -999,10 +1015,10 @@ namespace AxibugEmuOnline.Server { switch (LocalJoyIdx) { - case 0: SetInputDataBySlotIdx(SlotIdx, clieninput.p1_byte); break; - case 1: SetInputDataBySlotIdx(SlotIdx, clieninput.p2_byte); break; - case 2: SetInputDataBySlotIdx(SlotIdx, clieninput.p3_byte); break; - case 3: SetInputDataBySlotIdx(SlotIdx, clieninput.p4_byte); break; + case 0: SetInputDataBySlotIdx(SlotIdx, clieninput); break; + case 1: SetInputDataBySlotIdx(SlotIdx, clieninput); break; + case 2: SetInputDataBySlotIdx(SlotIdx, clieninput); break; + case 3: SetInputDataBySlotIdx(SlotIdx, clieninput); break; } } public int GetPlayerCount()