From 3aeb121b00f2d317e90a9aa28ef04f3310e32986 Mon Sep 17 00:00:00 2001 From: Martin Michelsen Date: Sat, 26 Mar 2022 23:59:58 -0700 Subject: [PATCH] rewrite subcommand list, add some comments --- src/ReceiveSubcommands.cc | 528 ++++++++++++++++++-------------------- 1 file changed, 256 insertions(+), 272 deletions(-) diff --git a/src/ReceiveSubcommands.cc b/src/ReceiveSubcommands.cc index d0741950..1c77f793 100644 --- a/src/ReceiveSubcommands.cc +++ b/src/ReceiveSubcommands.cc @@ -917,278 +917,262 @@ typedef void (*subcommand_handler_t)(shared_ptr s, const PSOSubcommand* p, size_t count); subcommand_handler_t subcommand_handlers[0x100] = { - // 00 - process_subcommand_invalid, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_forward_check_size_game, - process_subcommand_send_guild_card, - process_subcommand_symbol_chat, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_monster_hit, - process_subcommand_forward_check_size_game, - process_subcommand_forward_check_size_game, - process_subcommand_forward_check_size, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - // 10 - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_forward_check_size_game, - process_subcommand_forward_check_size_game, - process_subcommand_forward_check_size_game, - process_subcommand_forward_check_size_game, - process_subcommand_unimplemented, - process_subcommand_forward_check_size_game, - process_subcommand_forward_check_size_game, - process_subcommand_forward_check_size_game, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_forward_check_size, - // 20 - process_subcommand_forward_check_size, - process_subcommand_change_area, // Inter-level warp - process_subcommand_forward_check_size_client, - process_subcommand_forward_check_size_client, - process_subcommand_forward_check_size_game, - process_subcommand_equip_unequip_item, // Equip item - process_subcommand_equip_unequip_item, // Unequip item - process_subcommand_use_item, - process_subcommand_forward_check_size_game, // Feed MAG - process_subcommand_forward_check_size_game, - process_subcommand_drop_item, - process_subcommand_forward_check_size_game, - process_subcommand_forward_check_size, // Talk to NPC - process_subcommand_forward_check_size, // Done talking to NPC - process_subcommand_unimplemented, - process_subcommand_hit_by_monster, - // 30 - process_subcommand_forward_check_size_game, // level-up - process_subcommand_forward_check_size_game, - process_subcommand_forward_check_size_game, - process_subcommand_forward_check_size_game, // revive player, only confirmed with moon atomizer - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_forward_check_game, - process_subcommand_forward_check_size_game, // photon blast - process_subcommand_unimplemented, - process_subcommand_forward_check_size_game, // photon blast ready - process_subcommand_forward_check_size_game, - process_subcommand_forward_check_size, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_forward_check_size, // Stop moving - process_subcommand_forward_check_size, - // 40 - process_subcommand_forward_check_size, // Walk - process_subcommand_unimplemented, - process_subcommand_forward_check_size, // Run - process_subcommand_forward_check_size_client, - process_subcommand_forward_check_size_client, - process_subcommand_forward_check_size_client, - process_subcommand_forward_check_size_client, - process_subcommand_forward_check_size_client, - process_subcommand_use_technique, - process_subcommand_forward_check_size_client, - process_subcommand_forward_check_size_client, - process_subcommand_hit_by_monster, - process_subcommand_hit_by_monster, - process_subcommand_forward_check_size_client, - process_subcommand_forward_check_size_client, - process_subcommand_forward_check_size_client, - // 50 - process_subcommand_forward_check_size_client, - process_subcommand_unimplemented, - process_subcommand_forward_check_size, // Toggle shop/bank interaction - process_subcommand_forward_check_size_game, - process_subcommand_unimplemented, - process_subcommand_forward_check_size_client, // Intra-map warp - process_subcommand_forward_check_size_client, - process_subcommand_forward_check_size_client, - process_subcommand_forward_check_size_game, - process_subcommand_forward_check_size_game, - process_subcommand_pick_up_item, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_forward_check_size_game, // drop meseta - process_subcommand_forward_check_size_game, - process_subcommand_forward_check_size_game, - // 60 - process_subcommand_enemy_drop_item, - process_subcommand_forward_check_size_game, // feed mag - process_subcommand_unimplemented, - process_subcommand_destroy_item, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_forward_check_size_game, - process_subcommand_forward_check_size_game, - process_subcommand_unimplemented, - process_subcommand_forward_check_size_game, - process_subcommand_forward_check_game_loading, - process_subcommand_forward_check_game_loading, - process_subcommand_forward_check_game_loading, - process_subcommand_forward_check_game_loading, - process_subcommand_forward_check_game_loading, - // 70 - process_subcommand_forward_check_game_loading, - process_subcommand_forward_check_game_loading, - process_subcommand_forward_check_game_loading, - process_subcommand_invalid, - process_subcommand_word_select, - process_subcommand_forward_check_size_game, - process_subcommand_forward_check_size_game, - process_subcommand_forward_check_size, - process_subcommand_unimplemented, - process_subcommand_forward_check_size, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_forward_check_size_game, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - // 80 - process_subcommand_forward_check_size_game, // trigger trap - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_forward_check_size_game, // place trap - process_subcommand_forward_check_size_game, - process_subcommand_forward_check_size_game, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_forward_check_size_game, - process_subcommand_forward_check_size_game, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_forward_check_size_client, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - // 90 - process_subcommand_unimplemented, - process_subcommand_forward_check_size_game, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_forward_check_size_game, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - // A0 - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_box_drop_item, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_forward_check_size, // trade proposal - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_forward_check_size_client, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_forward_check_size_client, - process_subcommand_forward_check_size_client, - // B0 - process_subcommand_forward_check_size_client, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_open_shop_or_ep3_unknown, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_identify_item, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_open_bank, - process_subcommand_unimplemented, - process_subcommand_bank_action, - process_subcommand_unimplemented, - process_subcommand_forward_check_size_ep3_lobby, - // C0 - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_drop_stacked_item, - process_subcommand_sort_inventory, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_monster_killed, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_forward_check_size_game, - // D0 - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - // E0 - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - // F0 - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, - process_subcommand_unimplemented, + /* 00 */ process_subcommand_invalid, + /* 01 */ process_subcommand_unimplemented, + /* 02 */ process_subcommand_unimplemented, + /* 03 */ process_subcommand_unimplemented, + /* 04 */ process_subcommand_unimplemented, + /* 05 */ process_subcommand_forward_check_size_game, // Switch flipped (door lock / lights / poison gas) + /* 06 */ process_subcommand_send_guild_card, + /* 07 */ process_subcommand_symbol_chat, + /* 08 */ process_subcommand_unimplemented, + /* 09 */ process_subcommand_unimplemented, + /* 0A */ process_subcommand_monster_hit, + /* 0B */ process_subcommand_forward_check_size_game, // Box destroyed + /* 0C */ process_subcommand_forward_check_size_game, + /* 0D */ process_subcommand_forward_check_size, + /* 0E */ process_subcommand_unimplemented, + /* 0F */ process_subcommand_unimplemented, + /* 10 */ process_subcommand_unimplemented, + /* 11 */ process_subcommand_unimplemented, + /* 12 */ process_subcommand_forward_check_size_game, + /* 13 */ process_subcommand_forward_check_size_game, + /* 14 */ process_subcommand_forward_check_size_game, + /* 15 */ process_subcommand_forward_check_size_game, + /* 16 */ process_subcommand_unimplemented, + /* 17 */ process_subcommand_forward_check_size_game, + /* 18 */ process_subcommand_forward_check_size_game, + /* 19 */ process_subcommand_forward_check_size_game, + /* 1A */ process_subcommand_unimplemented, + /* 1B */ process_subcommand_unimplemented, + /* 1C */ process_subcommand_unimplemented, + /* 1D */ process_subcommand_unimplemented, + /* 1E */ process_subcommand_unimplemented, + /* 1F */ process_subcommand_forward_check_size, + /* 20 */ process_subcommand_forward_check_size, + /* 21 */ process_subcommand_change_area, // Inter-level warp + /* 22 */ process_subcommand_forward_check_size_client, // Set player visibility + /* 23 */ process_subcommand_forward_check_size_client, // Set player visibility + /* 24 */ process_subcommand_forward_check_size_game, + /* 25 */ process_subcommand_equip_unequip_item, // Equip item + /* 26 */ process_subcommand_equip_unequip_item, // Unequip item + /* 27 */ process_subcommand_use_item, + /* 28 */ process_subcommand_forward_check_size_game, // Feed MAG + /* 29 */ process_subcommand_forward_check_size_game, // Delete item (via bank deposit / sale / feeding MAG) + /* 2A */ process_subcommand_drop_item, + /* 2B */ process_subcommand_forward_check_size_game, + /* 2C */ process_subcommand_forward_check_size, // Talk to NPC + /* 2D */ process_subcommand_forward_check_size, // Done talking to NPC + /* 2E */ process_subcommand_unimplemented, + /* 2F */ process_subcommand_hit_by_monster, + /* 30 */ process_subcommand_forward_check_size_game, // Level up + /* 31 */ process_subcommand_forward_check_size_game, // Medical center + /* 32 */ process_subcommand_forward_check_size_game, // Medical center + /* 33 */ process_subcommand_forward_check_size_game, // Revive player (only confirmed with moon atomizer) + /* 34 */ process_subcommand_unimplemented, + /* 35 */ process_subcommand_unimplemented, + /* 36 */ process_subcommand_forward_check_game, + /* 37 */ process_subcommand_forward_check_size_game, // Photon blast + /* 38 */ process_subcommand_unimplemented, + /* 39 */ process_subcommand_forward_check_size_game, // Photon blast ready + /* 3A */ process_subcommand_forward_check_size_game, + /* 3B */ process_subcommand_forward_check_size, + /* 3C */ process_subcommand_unimplemented, + /* 3D */ process_subcommand_unimplemented, + /* 3E */ process_subcommand_forward_check_size, // Stop moving + /* 3F */ process_subcommand_forward_check_size, + /* 40 */ process_subcommand_forward_check_size, // Walk + /* 41 */ process_subcommand_unimplemented, + /* 42 */ process_subcommand_forward_check_size, // Run + /* 43 */ process_subcommand_forward_check_size_client, + /* 44 */ process_subcommand_forward_check_size_client, + /* 45 */ process_subcommand_forward_check_size_client, + /* 46 */ process_subcommand_forward_check_size_client, + /* 47 */ process_subcommand_forward_check_size_client, + /* 48 */ process_subcommand_use_technique, + /* 49 */ process_subcommand_forward_check_size_client, + /* 4A */ process_subcommand_forward_check_size_client, + /* 4B */ process_subcommand_hit_by_monster, + /* 4C */ process_subcommand_hit_by_monster, + /* 4D */ process_subcommand_forward_check_size_client, + /* 4E */ process_subcommand_forward_check_size_client, + /* 4F */ process_subcommand_forward_check_size_client, + /* 50 */ process_subcommand_forward_check_size_client, + /* 51 */ process_subcommand_unimplemented, + /* 52 */ process_subcommand_forward_check_size, // Toggle shop/bank interaction + /* 53 */ process_subcommand_forward_check_size_game, + /* 54 */ process_subcommand_unimplemented, + /* 55 */ process_subcommand_forward_check_size_client, // Intra-map warp + /* 56 */ process_subcommand_forward_check_size_client, + /* 57 */ process_subcommand_forward_check_size_client, + /* 58 */ process_subcommand_forward_check_size_game, + /* 59 */ process_subcommand_forward_check_size_game, // Item picked up + /* 5A */ process_subcommand_pick_up_item, // Request to pick up item + /* 5B */ process_subcommand_unimplemented, + /* 5C */ process_subcommand_unimplemented, + /* 5D */ process_subcommand_forward_check_size_game, // Drop meseta or stacked item + /* 5E */ process_subcommand_forward_check_size_game, // Buy item at shop + /* 5F */ process_subcommand_forward_check_size_game, // Drop item from box/monster + /* 60 */ process_subcommand_enemy_drop_item, // Request for item drop (handled by the server on BB) + /* 61 */ process_subcommand_forward_check_size_game, // Feed mag + /* 62 */ process_subcommand_unimplemented, + /* 63 */ process_subcommand_destroy_item, // Destroy an item on the ground (used when too many items have been dropped) + /* 64 */ process_subcommand_unimplemented, + /* 65 */ process_subcommand_unimplemented, + /* 66 */ process_subcommand_unimplemented, + /* 67 */ process_subcommand_forward_check_size_game, + /* 68 */ process_subcommand_forward_check_size_game, // Telepipe/Ryuker + /* 69 */ process_subcommand_unimplemented, + /* 6A */ process_subcommand_forward_check_size_game, + /* 6B */ process_subcommand_forward_check_game_loading, + /* 6C */ process_subcommand_forward_check_game_loading, + /* 6D */ process_subcommand_forward_check_game_loading, + /* 6E */ process_subcommand_forward_check_game_loading, + /* 6F */ process_subcommand_forward_check_game_loading, + /* 70 */ process_subcommand_forward_check_game_loading, + /* 71 */ process_subcommand_forward_check_game_loading, + /* 72 */ process_subcommand_forward_check_game_loading, + /* 73 */ process_subcommand_invalid, + /* 74 */ process_subcommand_word_select, + /* 75 */ process_subcommand_forward_check_size_game, + /* 76 */ process_subcommand_forward_check_size_game, // Monster killed + /* 77 */ process_subcommand_forward_check_size_game, // Sync quest data + /* 78 */ process_subcommand_unimplemented, + /* 79 */ process_subcommand_forward_check_size, // Lobby 14/15 soccer game + /* 7A */ process_subcommand_unimplemented, + /* 7B */ process_subcommand_unimplemented, + /* 7C */ process_subcommand_forward_check_size_game, + /* 7D */ process_subcommand_forward_check_size_game, + /* 7E */ process_subcommand_unimplemented, + /* 7F */ process_subcommand_unimplemented, + /* 80 */ process_subcommand_forward_check_size_game, // trigger trap + /* 81 */ process_subcommand_unimplemented, + /* 82 */ process_subcommand_unimplemented, + /* 83 */ process_subcommand_forward_check_size_game, // place trap + /* 84 */ process_subcommand_forward_check_size_game, + /* 85 */ process_subcommand_forward_check_size_game, + /* 86 */ process_subcommand_unimplemented, + /* 87 */ process_subcommand_unimplemented, + /* 88 */ process_subcommand_forward_check_size_game, + /* 89 */ process_subcommand_forward_check_size_game, + /* 8A */ process_subcommand_unimplemented, + /* 8B */ process_subcommand_unimplemented, + /* 8C */ process_subcommand_unimplemented, + /* 8D */ process_subcommand_forward_check_size_client, + /* 8E */ process_subcommand_unimplemented, + /* 8F */ process_subcommand_unimplemented, + /* 90 */ process_subcommand_unimplemented, + /* 91 */ process_subcommand_forward_check_size_game, + /* 92 */ process_subcommand_unimplemented, + /* 93 */ process_subcommand_unimplemented, + /* 94 */ process_subcommand_forward_check_size_game, // Warp (the $warp chat command is implemented using this) + /* 95 */ process_subcommand_unimplemented, + /* 96 */ process_subcommand_unimplemented, + /* 97 */ process_subcommand_unimplemented, + /* 98 */ process_subcommand_unimplemented, + /* 99 */ process_subcommand_unimplemented, + /* 9A */ process_subcommand_forward_check_size_game, // Update player stat ($infhp/$inftp are implemented using this command) + /* 9B */ process_subcommand_unimplemented, + /* 9C */ process_subcommand_forward_check_size_game, + /* 9D */ process_subcommand_unimplemented, + /* 9E */ process_subcommand_unimplemented, + /* 9F */ process_subcommand_unimplemented, + /* A0 */ process_subcommand_unimplemented, + /* A1 */ process_subcommand_unimplemented, + /* A2 */ process_subcommand_box_drop_item, // Request for item drop from box (handled by server on BB) + /* A3 */ process_subcommand_unimplemented, + /* A4 */ process_subcommand_unimplemented, + /* A5 */ process_subcommand_unimplemented, + /* A6 */ process_subcommand_forward_check_size, // trade proposal + /* A7 */ process_subcommand_unimplemented, + /* A8 */ process_subcommand_unimplemented, + /* A9 */ process_subcommand_unimplemented, + /* AA */ process_subcommand_unimplemented, + /* AB */ process_subcommand_forward_check_size_client, // Create lobby chair + /* AC */ process_subcommand_unimplemented, + /* AD */ process_subcommand_unimplemented, + /* AE */ process_subcommand_forward_check_size_client, + /* AF */ process_subcommand_forward_check_size_client, // Turn in lobby chair + /* B0 */ process_subcommand_forward_check_size_client, // Move in lobby chair + /* B1 */ process_subcommand_unimplemented, + /* B2 */ process_subcommand_unimplemented, + /* B3 */ process_subcommand_unimplemented, + /* B4 */ process_subcommand_unimplemented, + /* B5 */ process_subcommand_open_shop_or_ep3_unknown, // BB shop request + /* B6 */ process_subcommand_unimplemented, // BB shop contents (server->client only) + /* B7 */ process_subcommand_unimplemented, // TODO: BB buy shop item + /* B8 */ process_subcommand_identify_item, // Accept tekker result + /* B9 */ process_subcommand_unimplemented, + /* BA */ process_subcommand_unimplemented, + /* BB */ process_subcommand_open_bank, // BB Bank request + /* BC */ process_subcommand_unimplemented, // BB bank contents (server->client only) + /* BD */ process_subcommand_bank_action, + /* BE */ process_subcommand_unimplemented, // BB create inventory item (server->client only) + /* BF */ process_subcommand_forward_check_size_ep3_lobby, // Ep3 change music, also BB give EXP (BB usage is server->client only) + /* C0 */ process_subcommand_unimplemented, + /* C1 */ process_subcommand_unimplemented, + /* C2 */ process_subcommand_unimplemented, + /* C3 */ process_subcommand_drop_stacked_item, // Split stacked item - not sent if entire stack is dropped + /* C4 */ process_subcommand_sort_inventory, + /* C5 */ process_subcommand_unimplemented, + /* C6 */ process_subcommand_unimplemented, + /* C7 */ process_subcommand_unimplemented, + /* C8 */ process_subcommand_monster_killed, + /* C9 */ process_subcommand_unimplemented, + /* CA */ process_subcommand_unimplemented, + /* CB */ process_subcommand_unimplemented, + /* CC */ process_subcommand_unimplemented, + /* CD */ process_subcommand_unimplemented, + /* CE */ process_subcommand_unimplemented, + /* CF */ process_subcommand_forward_check_size_game, + /* D0 */ process_subcommand_unimplemented, + /* D1 */ process_subcommand_unimplemented, + /* D2 */ process_subcommand_unimplemented, + /* D3 */ process_subcommand_unimplemented, + /* D4 */ process_subcommand_unimplemented, + /* D5 */ process_subcommand_unimplemented, + /* D6 */ process_subcommand_unimplemented, + /* D7 */ process_subcommand_unimplemented, + /* D8 */ process_subcommand_unimplemented, + /* D9 */ process_subcommand_unimplemented, + /* DA */ process_subcommand_unimplemented, + /* DB */ process_subcommand_unimplemented, + /* DC */ process_subcommand_unimplemented, + /* DD */ process_subcommand_unimplemented, + /* DE */ process_subcommand_unimplemented, + /* DF */ process_subcommand_unimplemented, + /* E0 */ process_subcommand_unimplemented, + /* E1 */ process_subcommand_unimplemented, + /* E2 */ process_subcommand_unimplemented, + /* E3 */ process_subcommand_unimplemented, + /* E4 */ process_subcommand_unimplemented, + /* E5 */ process_subcommand_unimplemented, + /* E6 */ process_subcommand_unimplemented, + /* E7 */ process_subcommand_unimplemented, + /* E8 */ process_subcommand_unimplemented, + /* E9 */ process_subcommand_unimplemented, + /* EA */ process_subcommand_unimplemented, + /* EB */ process_subcommand_unimplemented, + /* EC */ process_subcommand_unimplemented, + /* ED */ process_subcommand_unimplemented, + /* EE */ process_subcommand_unimplemented, + /* EF */ process_subcommand_unimplemented, + /* F0 */ process_subcommand_unimplemented, + /* F1 */ process_subcommand_unimplemented, + /* F2 */ process_subcommand_unimplemented, + /* F3 */ process_subcommand_unimplemented, + /* F4 */ process_subcommand_unimplemented, + /* F5 */ process_subcommand_unimplemented, + /* F6 */ process_subcommand_unimplemented, + /* F7 */ process_subcommand_unimplemented, + /* F8 */ process_subcommand_unimplemented, + /* F9 */ process_subcommand_unimplemented, + /* FA */ process_subcommand_unimplemented, + /* FB */ process_subcommand_unimplemented, + /* FC */ process_subcommand_unimplemented, + /* FD */ process_subcommand_unimplemented, + /* FE */ process_subcommand_unimplemented, + /* FF */ process_subcommand_unimplemented, }; void process_subcommand(shared_ptr s, shared_ptr l,