| 424 |
|
if( !PlayerList[i] ) break; |
| 425 |
|
//PlayerList[i]->Chr = ((GameState *)ONgGameState)->CharacterStorage; |
| 426 |
|
|
| 427 |
< |
PlayerList[i]->Actions1 = pd->Inputs.Actions1; |
| 427 |
> |
/* PlayerList[i]->Actions1 = pd->Inputs.Actions1; |
| 428 |
|
PlayerList[i]->Actions2 = pd->Inputs.Actions2; |
| 429 |
|
PlayerList[i]->MouseDeltaX = pd->Inputs.MouseDeltaX; |
| 430 |
< |
PlayerList[i]->MouseDeltaY = pd->Inputs.MouseDeltaY; |
| 430 |
> |
PlayerList[i]->MouseDeltaY = pd->Inputs.MouseDeltaY;*/ |
| 431 |
|
memcpy( &(PlayerList[i]->player_data), pd, sizeof(player_data) ); |
| 432 |
|
|
| 433 |
|
if( !server_started && pd->rare_sync_index > PlayerList[i]->rare_sync_index ) |
| 483 |
|
break; |
| 484 |
|
case PK_PING: |
| 485 |
|
packet.id = PK_PONG; |
| 486 |
– |
|
| 486 |
|
NetUDPSocket_Send(client_sock, (sockaddr *) &address, (char*)&packet, FLATLINE_HEADER + 4); |
| 487 |
|
break; |
| 488 |
+ |
case PK_ALL_INPUT: |
| 489 |
+ |
if(1) |
| 490 |
+ |
{ |
| 491 |
+ |
int Player; |
| 492 |
+ |
for(Player = 0; Player < MAX_CONNECTIONS; Player++) |
| 493 |
+ |
{ |
| 494 |
+ |
if(PlayerList[Player]) |
| 495 |
+ |
{ |
| 496 |
+ |
PlayerList[Player]->Actions1 = packet.all_input[Player].Actions1; |
| 497 |
+ |
PlayerList[Player]->Actions2 = packet.all_input[Player].Actions2; |
| 498 |
+ |
PlayerList[Player]->MouseDeltaX = packet.all_input[Player].MouseDeltaX; |
| 499 |
+ |
PlayerList[Player]->MouseDeltaY = packet.all_input[Player].MouseDeltaY; |
| 500 |
+ |
} |
| 501 |
+ |
} |
| 502 |
+ |
} |
| 503 |
+ |
break; |
| 504 |
|
default: |
| 505 |
|
DDrConsole_PrintF("Warning, recieved badly formed packet!"); |
| 506 |
|
break; |
| 546 |
|
void * ONICALL FLrInput_Update_Keys(void) |
| 547 |
|
{ |
| 548 |
|
uint16_t i; |
| 549 |
< |
|
| 549 |
> |
flatline_packet all_input = {0}; |
| 550 |
|
ActiveCharacter * Active_Player = ONgGameState->ActiveCharacters; |
| 551 |
|
Active_Player->PhyContext->Rotation; |
| 552 |
|
Active_Player->PhyContext->Position; |
| 571 |
|
|
| 572 |
|
if(!(server_started || client_connected)) return ONgGameState; |
| 573 |
|
|
| 574 |
+ |
all_input.id = PK_ALL_INPUT; |
| 575 |
+ |
|
| 576 |
|
if(server_started && ONgGameState->GameTime % 120 == 0) |
| 577 |
|
{ |
| 578 |
|
FLsPingAll(); |
| 585 |
|
if(PlayerList[i] == 0) continue; |
| 586 |
|
|
| 587 |
|
|
| 588 |
+ |
if(i == 0) { |
| 589 |
+ |
all_input.all_input[i].Actions1 = ((GameState*)(ONgGameState))->Input.Current.Actions1; |
| 590 |
+ |
all_input.all_input[i].Actions2 = ((GameState*)(ONgGameState))->Input.Current.Actions2; |
| 591 |
+ |
all_input.all_input[i].MouseDeltaX = ONgGameState->Input.MouseDeltaX; |
| 592 |
+ |
all_input.all_input[i].MouseDeltaY = ONgGameState->Input.MouseDeltaY; |
| 593 |
+ |
} |
| 594 |
+ |
else{ |
| 595 |
+ |
all_input.all_input[i].Actions1 = PlayerList[i]->Actions1; |
| 596 |
+ |
all_input.all_input[i].Actions2 = PlayerList[i]->Actions2; |
| 597 |
+ |
all_input.all_input[i].MouseDeltaX = PlayerList[i]->MouseDeltaX; |
| 598 |
+ |
all_input.all_input[i].MouseDeltaY = PlayerList[i]->MouseDeltaY; |
| 599 |
+ |
} |
| 600 |
+ |
|
| 601 |
|
Player = PlayerList[i]->Chr; |
| 602 |
|
if( Player->Health == 0) |
| 603 |
|
{ |
| 643 |
|
|
| 644 |
|
if(Active_Player == 0) continue; |
| 645 |
|
Active_Input = &(Active_Player->Input); |
| 646 |
< |
if(server_started) { |
| 646 |
> |
|
| 647 |
> |
if(server_started && strcmp(PlayerList[i]->player_data.Animation, TMrInstance_GetInstanceName(Active_Player->Animation))) |
| 648 |
> |
{ |
| 649 |
|
player_data * data; |
| 650 |
|
flatline_packet data_out = {0}; |
| 651 |
|
|
| 652 |
< |
if(!strcmp(PlayerList[i]->player_data.Animation, TMrInstance_GetInstanceName(Active_Player->Animation))) |
| 621 |
< |
continue; |
| 622 |
< |
|
| 652 |
> |
|
| 653 |
|
data_out.id = PLAYER_DATA; |
| 654 |
|
data = (void*)&(data_out.data); |
| 655 |
|
data->PlayerNum = i; |
| 681 |
|
data->rare_sync_index = PlayerList[i]->rare_sync_index; |
| 682 |
|
|
| 683 |
|
|
| 654 |
– |
if(i == 0) { |
| 655 |
– |
data->Inputs.Actions1 = ((GameState*)(ONgGameState))->Input.Current.Actions1; |
| 656 |
– |
data->Inputs.Actions2 = ((GameState*)(ONgGameState))->Input.Current.Actions2; |
| 657 |
– |
data->Inputs.MouseDeltaX = ONgGameState->Input.MouseDeltaX; |
| 658 |
– |
data->Inputs.MouseDeltaY = ONgGameState->Input.MouseDeltaY; |
| 659 |
– |
} |
| 660 |
– |
else{ |
| 661 |
– |
data->Inputs.Actions1 = PlayerList[i]->Actions1; |
| 662 |
– |
data->Inputs.Actions2 = PlayerList[i]->Actions2; |
| 663 |
– |
data->Inputs.MouseDeltaX = PlayerList[i]->MouseDeltaX; |
| 664 |
– |
data->Inputs.MouseDeltaY = PlayerList[i]->MouseDeltaY; |
| 665 |
– |
} |
| 684 |
|
data->Ping = PlayerList[i]->Ping; |
| 685 |
|
memcpy( &(PlayerList[i]->player_data), data, sizeof(player_data) ); |
| 686 |
|
|
| 707 |
|
void* Animation; |
| 708 |
|
player_data* pd = &PlayerList[i]->player_data; |
| 709 |
|
|
| 692 |
– |
if(PlayerList[i]->DataApplied) continue; |
| 710 |
|
|
| 711 |
+ |
//Note to self: sort out which needs to be applied the first time and which the second. |
| 712 |
+ |
switch(PlayerList[i]->DataApplied) |
| 713 |
+ |
{ |
| 714 |
+ |
case 1: |
| 715 |
+ |
PlayerList[i]->DataApplied = 2; |
| 716 |
+ |
break; |
| 717 |
+ |
case 0: |
| 718 |
+ |
PlayerList[i]->DataApplied = 1; |
| 719 |
+ |
case 2: |
| 720 |
+ |
continue; |
| 721 |
+ |
} |
| 722 |
+ |
|
| 723 |
|
Player->Health = PlayerList[i]->player_data.Health; |
| 724 |
|
PlayerList[i]->Chr->MaxHealth = PlayerList[i]->player_data.MaxHealth; |
| 725 |
|
|
| 726 |
|
PlayerList[i]->Chr->Facing = PlayerList[i]->player_data.Facing; |
| 727 |
|
PlayerList[i]->Chr->DesiredFacing = PlayerList[i]->player_data.DesiredFacing; |
| 728 |
|
|
| 729 |
< |
PlayerList[i]->Actions1 = PlayerList[i]->player_data.Inputs.Actions1; |
| 729 |
> |
/* PlayerList[i]->Actions1 = PlayerList[i]->player_data.Inputs.Actions1; |
| 730 |
|
PlayerList[i]->Actions2 = PlayerList[i]->player_data.Inputs.Actions2; |
| 731 |
|
PlayerList[i]->MouseDeltaX = PlayerList[i]->player_data.Inputs.MouseDeltaX; |
| 732 |
< |
PlayerList[i]->MouseDeltaY = PlayerList[i]->player_data.Inputs.MouseDeltaY; |
| 732 |
> |
PlayerList[i]->MouseDeltaY = PlayerList[i]->player_data.Inputs.MouseDeltaY;*/ |
| 733 |
|
Active_Player->PhyContext->Position = PlayerList[i]->player_data.Position; |
| 734 |
|
OldAnimation = Active_Player->Animation; |
| 735 |
|
|
| 785 |
|
ONrCharacter_NewAnimationHook(Player, Active_Player);*/ |
| 786 |
|
//Player->Flags |= 0x00000010; |
| 787 |
|
ONrCharacter_SetAnimationExternal(Player, TRrAnimation_GetFrom(Animation), Animation, 0); |
| 788 |
+ |
//ONrCharacter_NewAnimationHook(Player, Active_Player); |
| 789 |
|
} |
| 790 |
|
|
| 791 |
|
num_frames = TRrAnimation_GetDuration(Active_Player->Animation); |
| 840 |
|
} |
| 841 |
|
} |
| 842 |
|
} |
| 813 |
– |
PlayerList[i]->DataApplied = 1; |
| 843 |
|
|
| 844 |
|
} |
| 845 |
|
} |
| 846 |
+ |
|
| 847 |
+ |
} |
| 848 |
+ |
if(server_started) |
| 849 |
+ |
{ |
| 850 |
+ |
UDPServer_SendToAll(&all_input, FLATLINE_HEADER + sizeof(player_input) * 32); |
| 851 |
|
} |
| 852 |
|
|
| 853 |
|
return ONgGameState; |