From 2df497a376dd3fbf5dabba03c847a2c750e1f67c Mon Sep 17 00:00:00 2001 From: ChillerDragon Date: Wed, 21 Aug 2024 17:29:44 +0800 Subject: [PATCH] Add input msg --- src/data/teeworlds.asm | 1 + src/data/teeworlds_state.asm | 13 +++++++++++++ src/send_system.asm | 25 +++++++++++++++++++++++++ src/teeworlds_asmr.asm | 1 + tests/assert.asm | 1 + 5 files changed, 41 insertions(+) create mode 100644 src/data/teeworlds_state.asm diff --git a/src/data/teeworlds.asm b/src/data/teeworlds.asm index 8b400ca..24e6096 100644 --- a/src/data/teeworlds.asm +++ b/src/data/teeworlds.asm @@ -15,6 +15,7 @@ MSG_SYSTEM_SNAPSINGLE equ 8 MSG_SYSTEM_MAP_CHANGE equ 2 MSG_SYSTEM_READY equ 18 MSG_SYSTEM_ENTERGAME equ 19 +MSG_SYSTEM_INPUT equ 20 MSG_GAME_SV_MOTD equ 1 MSG_GAME_SV_TUNEPARAMS equ 6 diff --git a/src/data/teeworlds_state.asm b/src/data/teeworlds_state.asm new file mode 100644 index 0000000..8695ba7 --- /dev/null +++ b/src/data/teeworlds_state.asm @@ -0,0 +1,13 @@ +input_direction dd 0 +input_target_x dd 0 +input_target_y dd 0 +input_jump dd 0 +input_fire dd 0 +input_hook dd 0 +input_player_flags dd 0 +input_wanted_weapon dd 0 +input_next_weapon dd 0 +input_prev_weapon dd 0 + +ack_game_tick dd -1 + diff --git a/src/send_system.asm b/src/send_system.asm index 7f81e1f..88e0304 100644 --- a/src/send_system.asm +++ b/src/send_system.asm @@ -23,6 +23,31 @@ send_msg_info: pop_registers ret +send_msg_input: + push_registers + + packer_reset + send_msg MSG_SYSTEM_INPUT, 0, CHUNK_SYSTEM + pack_int [ack_game_tick] + pack_int [ack_game_tick] ; this is the pred tick lol + pack_int 40 ; size + pack_int [input_direction] + pack_int [input_target_x] + pack_int [input_target_y] + pack_int [input_jump] + pack_int [input_fire] + pack_int [input_hook] + pack_int [input_player_flags] + pack_int [input_wanted_weapon] + pack_int [input_next_weapon] + pack_int [input_prev_weapon] + pack_int 0 ; what is ping correction ???? + + call send_packet + + pop_registers + ret + send_msg_enter_game: push_registers diff --git a/src/teeworlds_asmr.asm b/src/teeworlds_asmr.asm index d44cc27..3502488 100644 --- a/src/teeworlds_asmr.asm +++ b/src/teeworlds_asmr.asm @@ -88,6 +88,7 @@ section .data %include "src/data/syscalls.asm" %include "src/data/teeworlds.asm" %include "src/data/teeworlds_settings.asm" + %include "src/data/teeworlds_state.asm" %include "src/data/teeworlds_strings.asm" %include "src/data/terminal.asm" %include "src/data/logger.asm" diff --git a/tests/assert.asm b/tests/assert.asm index 5187bcb..c98eea8 100644 --- a/tests/assert.asm +++ b/tests/assert.asm @@ -7,6 +7,7 @@ section .data %include "src/data/hex.asm" %include "src/data/teeworlds.asm" %include "src/data/teeworlds_settings.asm" + %include "src/data/teeworlds_state.asm" %include "src/data/teeworlds_strings.asm" %include "src/data/udp.asm" %include "src/data/huffman.asm"