X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=src%2Fcontrol.h;h=470b026cb74c154b2ea22b3120f932346429602e;hb=550d22ec0c3f530f5d317746f3f7e75251a1de4b;hp=bd5dd0ce36a8b94743cc872fd7aefe69cfa2eca8;hpb=7b26f28c6d6028b5aad2ba93a5c8911f6118e6e9;p=plomrogue diff --git a/src/control.h b/src/control.h index bd5dd0c..470b026 100644 --- a/src/control.h +++ b/src/control.h @@ -1,6 +1,6 @@ /* control.h * - * Routines for handling user's key press input. + * Routines for handling control input from keyboard or record file. */ #ifndef CONTROL_H @@ -13,10 +13,32 @@ struct World; -/* Call some meta game / window management actions dependent on key. If the - * "quit" action is called, return 1 only instead of doing anything directly. +/* Return keycode to action of "name" if available in current window config. */ +extern uint16_t get_available_keycode_to_action(struct World * world, + char * name); + + + +/* Control the player character, either via recorded "action" or pressed "key". + */ +extern void record_control(int action, struct World * world); +extern uint8_t player_control(int key, struct World * world); + + + +/* Control via "key" active window's geometry / keybindings in respective config + * view. + */ +extern uint8_t wingeom_control(int key, struct World * world); +extern uint8_t winkeyb_control(int key, struct World * world); + + + +/* Call by "key" further game / window management actions that don't influence + * the player character. If the "quit" action is called, return 1 (instead of + * exiting directly). */ -extern uint8_t meta_keys(int key, struct World * world); +extern uint8_t meta_control(int key, struct World * world);