Example #1
0
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