void ask_user (piece_info_t *obj) { char c; for (;;) { display_loc_u (obj->loc); /* display piece to move */ describe_obj (obj); /* describe object to be moved */ display_score (); /* show current score */ display_loc_u (obj->loc); /* reposition cursor */ c = get_chx (); /* get command from user (no echo) */ switch (c) { case 'Q': user_dir (obj, NORTHWEST); return; case 'W': user_dir (obj, NORTH); return; case 'E': user_dir (obj, NORTHEAST); return; case 'D': user_dir (obj, EAST); return; case 'C': user_dir (obj, SOUTHEAST); return; case 'X': user_dir (obj, SOUTH); return; case 'Z': user_dir (obj, SOUTHWEST); return; case 'A': user_dir (obj, WEST); return; case 'J': edit (obj->loc); reset_func (obj); return; case 'V': user_set_city_func (obj); reset_func (obj); return; case ' ': user_skip (obj); return; case 'F': user_fill (obj); return; case 'I': user_set_dir (obj); return; case 'R': user_random (obj); return; case 'S': user_sentry (obj); return; case 'L': user_land (obj); return; case 'G': user_explore (obj); return; case 'T': user_transport (obj); return; case 'U': user_repair (obj); return; case 'Y': user_armyattack (obj); return; case 'B': user_build (obj); break; case '?': help (help_user, user_lines);; break; case 'K': user_wake (obj); break; case 'O': user_cancel_auto (); break; case '\014': case 'P': redraw (); break; case '=': describe_obj (obj); break; default: alert(); } } }
////////x///////x///////x///////x///////x///////x///////x///////x///////x//// // CODEGEN 2.00 ////////x///////x///////x///////x///////x///////x///////x///////x///////x//// #ifndef __CG_BIN_HPP__ #define __CG_BIN_HPP__ typedef void __cdecl cg_engine( DWORD user_param, BYTE* bufptr, DWORD* outbufsize, DWORD regfree, BYTE* __cdecl user_fixup(DWORD userdata, BYTE* outptr, DWORD value), // both may be NULL, BYTE* __cdecl user_trash(DWORD userdata, BYTE* outptr, DWORD regfree), // both returns modified outptr DWORD __cdecl user_random(DWORD userdata, DWORD range), DWORD cmd_x_x, DWORD cmd_xxx, DWORD arg1, DWORD arg2); #define cmd_v_c 0 // cmd,v,c #define cmd_v_v 1 // cmd,v1,v2 #define cmd_v_memv 2 // cmd,v1,[v2] #define cmd_memv_v 3 // cmd,[v1],v2 #define cmd_r_r 4 // cmd,r1,r2 #define cmd_r_c 5 // cmd,r,c #define cmd_r_memr 6 // cmd,r1,[r2] #define cmd_memr_r 7 // cmd,[r1],r2 #define cmd_r_v 8 // cmd,r,v #define cmd_v_r 9 // cmd,v,r