[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#672142: transition: allegro4.4



Cyril Brulebois <kibi@debian.org> (16/06/2012):
> I'll try to reproduce the FTBFS with 4.2 and 4.4 on a porter box.

4.2 builds fine, 4.4 doesn't. Building that particular file with
gcc-4.7 was OK though. gcc-4.6 crashes then on the next file (cgfx16.c).

I'm attaching the preprocessed source for you to report a bug against
gcc. Until it's fixed, it might be a good idea to investigate removing
the reverse build-deps on ia64.

| [  1%] Building C object CMakeFiles/allegro.dir/src/c/cgfx15.c.o
| /usr/bin/gcc  -Dallegro_EXPORTS -g -O2 -Wformat -Werror=format-security  -W -Wall -Wno-unused-parameter -Wdeclaration-after-statement -O3 -DNDEBUG -fPIC -I/home/kibi/allegro4.4-4.4.2/include -I/home/kibi/allegro4.4-4.4.2/build/include -isystem /usr/include/alsa    -DALLEGRO_SRC -DALLEGRO_MODULES_PATH='"/usr/lib/ia64-linux-gnu/allegro/4.4.2"' -o CMakeFiles/allegro.dir/src/c/cgfx15.c.o   -c /home/kibi/allegro4.4-4.4.2/src/c/cgfx15.c
| In file included from /home/kibi/allegro4.4-4.4.2/src/c/cgfx15.c:25:0:
| /home/kibi/allegro4.4-4.4.2/src/c/cgfx.h: In function '_linear_hline15':
| /home/kibi/allegro4.4-4.4.2/src/c/cgfx.h:217:1: internal compiler error: in find_used_regs, at sel-sched.c:3273
| Please submit a full bug report,
| with preprocessed source if appropriate.
| See <file:///usr/share/doc/gcc-4.6/README.Bugs> for instructions.
| Preprocessed source stored into /tmp/ccFa4uiC.out file, please attach this to your bugreport.

Mraw,
KiBi.
// /usr/lib/gcc/ia64-linux-gnu/4.6/cc1 -quiet -I /home/kibi/allegro4.4-4.4.2/include -I /home/kibi/allegro4.4-4.4.2/build/include -imultilib . -imultiarch ia64-linux-gnu -D allegro_EXPORTS -D NDEBUG -D ALLEGRO_SRC -D ALLEGRO_MODULES_PATH="/usr/lib/ia64-linux-gnu/allegro/4.4.2" -isystem /usr/include/alsa /home/kibi/allegro4.4-4.4.2/src/c/cgfx15.c -quiet -dumpbase cgfx15.c -auxbase-strip CMakeFiles/allegro.dir/src/c/cgfx15.c.o -g -O2 -O3 -Wformat -Werror=format-security -Wextra -Wall -Wno-unused-parameter -Wdeclaration-after-statement -fPIC -o - -frandom-seed=0
# 1 "/home/kibi/allegro4.4-4.4.2/src/c/cgfx15.c"
# 1 "/home/kibi/allegro4.4-4.4.2/build//"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "/home/kibi/allegro4.4-4.4.2/src/c/cgfx15.c"
# 19 "/home/kibi/allegro4.4-4.4.2/src/c/cgfx15.c"
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 1
# 25 "/home/kibi/allegro4.4-4.4.2/include/allegro.h"
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/base.h" 1
# 24 "/home/kibi/allegro4.4-4.4.2/include/allegro/base.h"
# 1 "/usr/include/errno.h" 1 3 4
# 29 "/usr/include/errno.h" 3 4
# 1 "/usr/include/features.h" 1 3 4
# 323 "/usr/include/features.h" 3 4
# 1 "/usr/include/ia64-linux-gnu/bits/predefs.h" 1 3 4
# 324 "/usr/include/features.h" 2 3 4
# 356 "/usr/include/features.h" 3 4
# 1 "/usr/include/ia64-linux-gnu/sys/cdefs.h" 1 3 4
# 353 "/usr/include/ia64-linux-gnu/sys/cdefs.h" 3 4
# 1 "/usr/include/ia64-linux-gnu/bits/wordsize.h" 1 3 4
# 354 "/usr/include/ia64-linux-gnu/sys/cdefs.h" 2 3 4
# 357 "/usr/include/features.h" 2 3 4
# 388 "/usr/include/features.h" 3 4
# 1 "/usr/include/ia64-linux-gnu/gnu/stubs.h" 1 3 4
# 389 "/usr/include/features.h" 2 3 4
# 30 "/usr/include/errno.h" 2 3 4






# 1 "/usr/include/ia64-linux-gnu/bits/errno.h" 1 3 4
# 25 "/usr/include/ia64-linux-gnu/bits/errno.h" 3 4
# 1 "/usr/include/linux/errno.h" 1 3 4



# 1 "/usr/include/ia64-linux-gnu/asm/errno.h" 1 3 4
# 1 "/usr/include/asm-generic/errno.h" 1 3 4



# 1 "/usr/include/asm-generic/errno-base.h" 1 3 4
# 5 "/usr/include/asm-generic/errno.h" 2 3 4
# 1 "/usr/include/ia64-linux-gnu/asm/errno.h" 2 3 4
# 5 "/usr/include/linux/errno.h" 2 3 4
# 26 "/usr/include/ia64-linux-gnu/bits/errno.h" 2 3 4
# 47 "/usr/include/ia64-linux-gnu/bits/errno.h" 3 4
extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
# 37 "/usr/include/errno.h" 2 3 4
# 59 "/usr/include/errno.h" 3 4

# 25 "/home/kibi/allegro4.4-4.4.2/include/allegro/base.h" 2
# 1 "/usr/lib/gcc/ia64-linux-gnu/4.6/include-fixed/limits.h" 1 3 4
# 34 "/usr/lib/gcc/ia64-linux-gnu/4.6/include-fixed/limits.h" 3 4
# 1 "/usr/lib/gcc/ia64-linux-gnu/4.6/include-fixed/syslimits.h" 1 3 4






# 1 "/usr/lib/gcc/ia64-linux-gnu/4.6/include-fixed/limits.h" 1 3 4
# 169 "/usr/lib/gcc/ia64-linux-gnu/4.6/include-fixed/limits.h" 3 4
# 1 "/usr/include/limits.h" 1 3 4
# 145 "/usr/include/limits.h" 3 4
# 1 "/usr/include/ia64-linux-gnu/bits/posix1_lim.h" 1 3 4
# 157 "/usr/include/ia64-linux-gnu/bits/posix1_lim.h" 3 4
# 1 "/usr/include/ia64-linux-gnu/bits/local_lim.h" 1 3 4
# 39 "/usr/include/ia64-linux-gnu/bits/local_lim.h" 3 4
# 1 "/usr/include/linux/limits.h" 1 3 4
# 40 "/usr/include/ia64-linux-gnu/bits/local_lim.h" 2 3 4
# 158 "/usr/include/ia64-linux-gnu/bits/posix1_lim.h" 2 3 4
# 146 "/usr/include/limits.h" 2 3 4



# 1 "/usr/include/ia64-linux-gnu/bits/posix2_lim.h" 1 3 4
# 150 "/usr/include/limits.h" 2 3 4
# 170 "/usr/lib/gcc/ia64-linux-gnu/4.6/include-fixed/limits.h" 2 3 4
# 8 "/usr/lib/gcc/ia64-linux-gnu/4.6/include-fixed/syslimits.h" 2 3 4
# 35 "/usr/lib/gcc/ia64-linux-gnu/4.6/include-fixed/limits.h" 2 3 4
# 26 "/home/kibi/allegro4.4-4.4.2/include/allegro/base.h" 2
# 1 "/usr/lib/gcc/ia64-linux-gnu/4.6/include/stdarg.h" 1 3 4
# 40 "/usr/lib/gcc/ia64-linux-gnu/4.6/include/stdarg.h" 3 4
typedef __builtin_va_list __gnuc_va_list;
# 102 "/usr/lib/gcc/ia64-linux-gnu/4.6/include/stdarg.h" 3 4
typedef __gnuc_va_list va_list;
# 27 "/home/kibi/allegro4.4-4.4.2/include/allegro/base.h" 2
# 1 "/usr/lib/gcc/ia64-linux-gnu/4.6/include/stddef.h" 1 3 4
# 150 "/usr/lib/gcc/ia64-linux-gnu/4.6/include/stddef.h" 3 4
typedef long int ptrdiff_t;
# 212 "/usr/lib/gcc/ia64-linux-gnu/4.6/include/stddef.h" 3 4
typedef long unsigned int size_t;
# 324 "/usr/lib/gcc/ia64-linux-gnu/4.6/include/stddef.h" 3 4
typedef int wchar_t;
# 28 "/home/kibi/allegro4.4-4.4.2/include/allegro/base.h" 2
# 1 "/usr/include/stdlib.h" 1 3 4
# 33 "/usr/include/stdlib.h" 3 4
# 1 "/usr/lib/gcc/ia64-linux-gnu/4.6/include/stddef.h" 1 3 4
# 34 "/usr/include/stdlib.h" 2 3 4








# 1 "/usr/include/ia64-linux-gnu/bits/waitflags.h" 1 3 4
# 43 "/usr/include/stdlib.h" 2 3 4
# 1 "/usr/include/ia64-linux-gnu/bits/waitstatus.h" 1 3 4
# 65 "/usr/include/ia64-linux-gnu/bits/waitstatus.h" 3 4
# 1 "/usr/include/endian.h" 1 3 4
# 37 "/usr/include/endian.h" 3 4
# 1 "/usr/include/ia64-linux-gnu/bits/endian.h" 1 3 4
# 38 "/usr/include/endian.h" 2 3 4
# 61 "/usr/include/endian.h" 3 4
# 1 "/usr/include/ia64-linux-gnu/bits/byteswap.h" 1 3 4
# 62 "/usr/include/endian.h" 2 3 4
# 66 "/usr/include/ia64-linux-gnu/bits/waitstatus.h" 2 3 4

union wait
  {
    int w_status;
    struct
      {

 unsigned int __w_termsig:7;
 unsigned int __w_coredump:1;
 unsigned int __w_retcode:8;
 unsigned int:16;







      } __wait_terminated;
    struct
      {

 unsigned int __w_stopval:8;
 unsigned int __w_stopsig:8;
 unsigned int:16;






      } __wait_stopped;
  };
# 44 "/usr/include/stdlib.h" 2 3 4
# 68 "/usr/include/stdlib.h" 3 4
typedef union
  {
    union wait *__uptr;
    int *__iptr;
  } __WAIT_STATUS __attribute__ ((__transparent_union__));
# 96 "/usr/include/stdlib.h" 3 4


typedef struct
  {
    int quot;
    int rem;
  } div_t;



typedef struct
  {
    long int quot;
    long int rem;
  } ldiv_t;







__extension__ typedef struct
  {
    long long int quot;
    long long int rem;
  } lldiv_t;


# 140 "/usr/include/stdlib.h" 3 4
extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) ;




extern double atof (__const char *__nptr)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;

extern int atoi (__const char *__nptr)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;

extern long int atol (__const char *__nptr)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;





__extension__ extern long long int atoll (__const char *__nptr)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;





extern double strtod (__const char *__restrict __nptr,
        char **__restrict __endptr)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;





extern float strtof (__const char *__restrict __nptr,
       char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;

extern long double strtold (__const char *__restrict __nptr,
       char **__restrict __endptr)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;





extern long int strtol (__const char *__restrict __nptr,
   char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;

extern unsigned long int strtoul (__const char *__restrict __nptr,
      char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;




__extension__
extern long long int strtoq (__const char *__restrict __nptr,
        char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;

__extension__
extern unsigned long long int strtouq (__const char *__restrict __nptr,
           char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;





__extension__
extern long long int strtoll (__const char *__restrict __nptr,
         char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;

__extension__
extern unsigned long long int strtoull (__const char *__restrict __nptr,
     char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;

# 277 "/usr/include/stdlib.h" 3 4

extern __inline double
__attribute__ ((__nothrow__)) atof (__const char *__nptr)
{
  return strtod (__nptr, (char **) ((void *)0));
}
extern __inline int
__attribute__ ((__nothrow__)) atoi (__const char *__nptr)
{
  return (int) strtol (__nptr, (char **) ((void *)0), 10);
}
extern __inline long int
__attribute__ ((__nothrow__)) atol (__const char *__nptr)
{
  return strtol (__nptr, (char **) ((void *)0), 10);
}




__extension__ extern __inline long long int
__attribute__ ((__nothrow__)) atoll (__const char *__nptr)
{
  return strtoll (__nptr, (char **) ((void *)0), 10);
}

# 311 "/usr/include/stdlib.h" 3 4
extern char *l64a (long int __n) __attribute__ ((__nothrow__)) ;


extern long int a64l (__const char *__s)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;




# 1 "/usr/include/ia64-linux-gnu/sys/types.h" 1 3 4
# 28 "/usr/include/ia64-linux-gnu/sys/types.h" 3 4


# 1 "/usr/include/ia64-linux-gnu/bits/types.h" 1 3 4
# 28 "/usr/include/ia64-linux-gnu/bits/types.h" 3 4
# 1 "/usr/include/ia64-linux-gnu/bits/wordsize.h" 1 3 4
# 29 "/usr/include/ia64-linux-gnu/bits/types.h" 2 3 4


typedef unsigned char __u_char;
typedef unsigned short int __u_short;
typedef unsigned int __u_int;
typedef unsigned long int __u_long;


typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;

typedef signed long int __int64_t;
typedef unsigned long int __uint64_t;







typedef long int __quad_t;
typedef unsigned long int __u_quad_t;
# 131 "/usr/include/ia64-linux-gnu/bits/types.h" 3 4
# 1 "/usr/include/ia64-linux-gnu/bits/typesizes.h" 1 3 4
# 132 "/usr/include/ia64-linux-gnu/bits/types.h" 2 3 4


typedef unsigned long int __dev_t;
typedef unsigned int __uid_t;
typedef unsigned int __gid_t;
typedef unsigned long int __ino_t;
typedef unsigned long int __ino64_t;
typedef unsigned int __mode_t;
typedef unsigned long int __nlink_t;
typedef long int __off_t;
typedef long int __off64_t;
typedef int __pid_t;
typedef struct { int __val[2]; } __fsid_t;
typedef long int __clock_t;
typedef unsigned long int __rlim_t;
typedef unsigned long int __rlim64_t;
typedef unsigned int __id_t;
typedef long int __time_t;
typedef unsigned int __useconds_t;
typedef long int __suseconds_t;

typedef int __daddr_t;
typedef long int __swblk_t;
typedef int __key_t;


typedef int __clockid_t;


typedef void * __timer_t;


typedef long int __blksize_t;




typedef long int __blkcnt_t;
typedef long int __blkcnt64_t;


typedef unsigned long int __fsblkcnt_t;
typedef unsigned long int __fsblkcnt64_t;


typedef unsigned long int __fsfilcnt_t;
typedef unsigned long int __fsfilcnt64_t;

typedef long int __ssize_t;



typedef __off64_t __loff_t;
typedef __quad_t *__qaddr_t;
typedef char *__caddr_t;


typedef long int __intptr_t;


typedef unsigned int __socklen_t;
# 31 "/usr/include/ia64-linux-gnu/sys/types.h" 2 3 4



typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;




typedef __loff_t loff_t;



typedef __ino_t ino_t;
# 61 "/usr/include/ia64-linux-gnu/sys/types.h" 3 4
typedef __dev_t dev_t;




typedef __gid_t gid_t;




typedef __mode_t mode_t;




typedef __nlink_t nlink_t;




typedef __uid_t uid_t;





typedef __off_t off_t;
# 99 "/usr/include/ia64-linux-gnu/sys/types.h" 3 4
typedef __pid_t pid_t;





typedef __id_t id_t;




typedef __ssize_t ssize_t;





typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;





typedef __key_t key_t;
# 133 "/usr/include/ia64-linux-gnu/sys/types.h" 3 4
# 1 "/usr/include/time.h" 1 3 4
# 58 "/usr/include/time.h" 3 4


typedef __clock_t clock_t;



# 74 "/usr/include/time.h" 3 4


typedef __time_t time_t;



# 92 "/usr/include/time.h" 3 4
typedef __clockid_t clockid_t;
# 104 "/usr/include/time.h" 3 4
typedef __timer_t timer_t;
# 134 "/usr/include/ia64-linux-gnu/sys/types.h" 2 3 4
# 147 "/usr/include/ia64-linux-gnu/sys/types.h" 3 4
# 1 "/usr/lib/gcc/ia64-linux-gnu/4.6/include/stddef.h" 1 3 4
# 148 "/usr/include/ia64-linux-gnu/sys/types.h" 2 3 4



typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
# 195 "/usr/include/ia64-linux-gnu/sys/types.h" 3 4
typedef int int8_t __attribute__ ((__mode__ (__QI__)));
typedef int int16_t __attribute__ ((__mode__ (__HI__)));
typedef int int32_t __attribute__ ((__mode__ (__SI__)));
typedef int int64_t __attribute__ ((__mode__ (__DI__)));


typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));

typedef int register_t __attribute__ ((__mode__ (__word__)));
# 220 "/usr/include/ia64-linux-gnu/sys/types.h" 3 4
# 1 "/usr/include/ia64-linux-gnu/sys/select.h" 1 3 4
# 31 "/usr/include/ia64-linux-gnu/sys/select.h" 3 4
# 1 "/usr/include/ia64-linux-gnu/bits/select.h" 1 3 4
# 32 "/usr/include/ia64-linux-gnu/sys/select.h" 2 3 4


# 1 "/usr/include/ia64-linux-gnu/bits/sigset.h" 1 3 4
# 24 "/usr/include/ia64-linux-gnu/bits/sigset.h" 3 4
typedef int __sig_atomic_t;




typedef struct
  {
    unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
  } __sigset_t;
# 35 "/usr/include/ia64-linux-gnu/sys/select.h" 2 3 4



typedef __sigset_t sigset_t;





# 1 "/usr/include/time.h" 1 3 4
# 120 "/usr/include/time.h" 3 4
struct timespec
  {
    __time_t tv_sec;
    long int tv_nsec;
  };
# 45 "/usr/include/ia64-linux-gnu/sys/select.h" 2 3 4

# 1 "/usr/include/ia64-linux-gnu/bits/time.h" 1 3 4
# 75 "/usr/include/ia64-linux-gnu/bits/time.h" 3 4
struct timeval
  {
    __time_t tv_sec;
    __suseconds_t tv_usec;
  };
# 47 "/usr/include/ia64-linux-gnu/sys/select.h" 2 3 4


typedef __suseconds_t suseconds_t;





typedef long int __fd_mask;
# 67 "/usr/include/ia64-linux-gnu/sys/select.h" 3 4
typedef struct
  {






    __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];


  } fd_set;






typedef __fd_mask fd_mask;
# 99 "/usr/include/ia64-linux-gnu/sys/select.h" 3 4

# 109 "/usr/include/ia64-linux-gnu/sys/select.h" 3 4
extern int select (int __nfds, fd_set *__restrict __readfds,
     fd_set *__restrict __writefds,
     fd_set *__restrict __exceptfds,
     struct timeval *__restrict __timeout);
# 121 "/usr/include/ia64-linux-gnu/sys/select.h" 3 4
extern int pselect (int __nfds, fd_set *__restrict __readfds,
      fd_set *__restrict __writefds,
      fd_set *__restrict __exceptfds,
      const struct timespec *__restrict __timeout,
      const __sigset_t *__restrict __sigmask);



# 221 "/usr/include/ia64-linux-gnu/sys/types.h" 2 3 4


# 1 "/usr/include/ia64-linux-gnu/sys/sysmacros.h" 1 3 4
# 30 "/usr/include/ia64-linux-gnu/sys/sysmacros.h" 3 4
__extension__
extern unsigned int gnu_dev_major (unsigned long long int __dev)
     __attribute__ ((__nothrow__));
__extension__
extern unsigned int gnu_dev_minor (unsigned long long int __dev)
     __attribute__ ((__nothrow__));
__extension__
extern unsigned long long int gnu_dev_makedev (unsigned int __major,
            unsigned int __minor)
     __attribute__ ((__nothrow__));


__extension__ extern __inline unsigned int
__attribute__ ((__nothrow__)) gnu_dev_major (unsigned long long int __dev)
{
  return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
}

__extension__ extern __inline unsigned int
__attribute__ ((__nothrow__)) gnu_dev_minor (unsigned long long int __dev)
{
  return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
}

__extension__ extern __inline unsigned long long int
__attribute__ ((__nothrow__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor)
{
  return ((__minor & 0xff) | ((__major & 0xfff) << 8)
   | (((unsigned long long int) (__minor & ~0xff)) << 12)
   | (((unsigned long long int) (__major & ~0xfff)) << 32));
}
# 224 "/usr/include/ia64-linux-gnu/sys/types.h" 2 3 4





typedef __blksize_t blksize_t;






typedef __blkcnt_t blkcnt_t;



typedef __fsblkcnt_t fsblkcnt_t;



typedef __fsfilcnt_t fsfilcnt_t;
# 271 "/usr/include/ia64-linux-gnu/sys/types.h" 3 4
# 1 "/usr/include/ia64-linux-gnu/bits/pthreadtypes.h" 1 3 4
# 36 "/usr/include/ia64-linux-gnu/bits/pthreadtypes.h" 3 4
typedef unsigned long int pthread_t;


typedef union
{
  char __size[56];
  long int __align;
} pthread_attr_t;


typedef struct __pthread_internal_list
{
  struct __pthread_internal_list *__prev;
  struct __pthread_internal_list *__next;
} __pthread_list_t;




typedef union
{
  struct __pthread_mutex_s
  {
    int __lock;
    unsigned int __count;
    int __owner;
    unsigned int __nusers;


    int __kind;
    int __spins;
    __pthread_list_t __list;

  } __data;
  char __size[40];
  long int __align;
} pthread_mutex_t;

typedef union
{
  char __size[4];
  int __align;
} pthread_mutexattr_t;




typedef union
{
  struct
  {
    int __lock;
    unsigned int __futex;
    __extension__ unsigned long long int __total_seq;
    __extension__ unsigned long long int __wakeup_seq;
    __extension__ unsigned long long int __woken_seq;
    void *__mutex;
    unsigned int __nwaiters;
    unsigned int __broadcast_seq;
  } __data;
  char __size[48];
  long int __align;
} pthread_cond_t;

typedef union
{
  char __size[4];
  int __align;
} pthread_condattr_t;



typedef unsigned int pthread_key_t;



typedef int pthread_once_t;





typedef union
{
  struct
  {
    int __lock;
    unsigned int __nr_readers;
    unsigned int __readers_wakeup;
    unsigned int __writer_wakeup;
    unsigned int __nr_readers_queued;
    unsigned int __nr_writers_queued;
    int __writer;
    int __shared;
    unsigned long int __pad1;
    unsigned long int __pad2;


    unsigned int __flags;
  } __data;
  char __size[56];
  long int __align;
} pthread_rwlock_t;

typedef union
{
  char __size[8];
  long int __align;
} pthread_rwlockattr_t;





typedef volatile int pthread_spinlock_t;




typedef union
{
  char __size[32];
  long int __align;
} pthread_barrier_t;

typedef union
{
  char __size[4];
  int __align;
} pthread_barrierattr_t;
# 272 "/usr/include/ia64-linux-gnu/sys/types.h" 2 3 4



# 321 "/usr/include/stdlib.h" 2 3 4






extern long int random (void) __attribute__ ((__nothrow__));


extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__));





extern char *initstate (unsigned int __seed, char *__statebuf,
   size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));



extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));







struct random_data
  {
    int32_t *fptr;
    int32_t *rptr;
    int32_t *state;
    int rand_type;
    int rand_deg;
    int rand_sep;
    int32_t *end_ptr;
  };

extern int random_r (struct random_data *__restrict __buf,
       int32_t *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));

extern int srandom_r (unsigned int __seed, struct random_data *__buf)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));

extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
   size_t __statelen,
   struct random_data *__restrict __buf)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));

extern int setstate_r (char *__restrict __statebuf,
         struct random_data *__restrict __buf)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));






extern int rand (void) __attribute__ ((__nothrow__));

extern void srand (unsigned int __seed) __attribute__ ((__nothrow__));




extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__));







extern double drand48 (void) __attribute__ ((__nothrow__));
extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));


extern long int lrand48 (void) __attribute__ ((__nothrow__));
extern long int nrand48 (unsigned short int __xsubi[3])
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));


extern long int mrand48 (void) __attribute__ ((__nothrow__));
extern long int jrand48 (unsigned short int __xsubi[3])
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));


extern void srand48 (long int __seedval) __attribute__ ((__nothrow__));
extern unsigned short int *seed48 (unsigned short int __seed16v[3])
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));





struct drand48_data
  {
    unsigned short int __x[3];
    unsigned short int __old_x[3];
    unsigned short int __c;
    unsigned short int __init;
    unsigned long long int __a;
  };


extern int drand48_r (struct drand48_data *__restrict __buffer,
        double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int erand48_r (unsigned short int __xsubi[3],
        struct drand48_data *__restrict __buffer,
        double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));


extern int lrand48_r (struct drand48_data *__restrict __buffer,
        long int *__restrict __result)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int nrand48_r (unsigned short int __xsubi[3],
        struct drand48_data *__restrict __buffer,
        long int *__restrict __result)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));


extern int mrand48_r (struct drand48_data *__restrict __buffer,
        long int *__restrict __result)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int jrand48_r (unsigned short int __xsubi[3],
        struct drand48_data *__restrict __buffer,
        long int *__restrict __result)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));


extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));

extern int seed48_r (unsigned short int __seed16v[3],
       struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));

extern int lcong48_r (unsigned short int __param[7],
        struct drand48_data *__buffer)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));









extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;

extern void *calloc (size_t __nmemb, size_t __size)
     __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;










extern void *realloc (void *__ptr, size_t __size)
     __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));

extern void free (void *__ptr) __attribute__ ((__nothrow__));




extern void cfree (void *__ptr) __attribute__ ((__nothrow__));



# 1 "/usr/include/alloca.h" 1 3 4
# 25 "/usr/include/alloca.h" 3 4
# 1 "/usr/lib/gcc/ia64-linux-gnu/4.6/include/stddef.h" 1 3 4
# 26 "/usr/include/alloca.h" 2 3 4







extern void *alloca (size_t __size) __attribute__ ((__nothrow__));






# 498 "/usr/include/stdlib.h" 2 3 4





extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;




extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;




extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));



extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
# 531 "/usr/include/stdlib.h" 3 4





extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));






extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
# 554 "/usr/include/stdlib.h" 3 4






extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));






extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;




extern char *__secure_getenv (__const char *__name)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;





extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));





extern int setenv (__const char *__name, __const char *__value, int __replace)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));


extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));






extern int clearenv (void) __attribute__ ((__nothrow__));
# 606 "/usr/include/stdlib.h" 3 4
extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
# 620 "/usr/include/stdlib.h" 3 4
extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
# 642 "/usr/include/stdlib.h" 3 4
extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
# 663 "/usr/include/stdlib.h" 3 4
extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
# 712 "/usr/include/stdlib.h" 3 4





extern int system (__const char *__command) ;

# 734 "/usr/include/stdlib.h" 3 4
extern char *realpath (__const char *__restrict __name,
         char *__restrict __resolved) __attribute__ ((__nothrow__)) ;






typedef int (*__compar_fn_t) (__const void *, __const void *);
# 752 "/usr/include/stdlib.h" 3 4



extern void *bsearch (__const void *__key, __const void *__base,
        size_t __nmemb, size_t __size, __compar_fn_t __compar)
     __attribute__ ((__nonnull__ (1, 2, 5))) ;



extern void qsort (void *__base, size_t __nmemb, size_t __size,
     __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
# 771 "/usr/include/stdlib.h" 3 4
extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;



__extension__ extern long long int llabs (long long int __x)
     __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;







extern div_t div (int __numer, int __denom)
     __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
extern ldiv_t ldiv (long int __numer, long int __denom)
     __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;




__extension__ extern lldiv_t lldiv (long long int __numer,
        long long int __denom)
     __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;

# 808 "/usr/include/stdlib.h" 3 4
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
     int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;




extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
     int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;




extern char *gcvt (double __value, int __ndigit, char *__buf)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ;




extern char *qecvt (long double __value, int __ndigit,
      int *__restrict __decpt, int *__restrict __sign)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
extern char *qfcvt (long double __value, int __ndigit,
      int *__restrict __decpt, int *__restrict __sign)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
extern char *qgcvt (long double __value, int __ndigit, char *__buf)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ;




extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
     int *__restrict __sign, char *__restrict __buf,
     size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
     int *__restrict __sign, char *__restrict __buf,
     size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));

extern int qecvt_r (long double __value, int __ndigit,
      int *__restrict __decpt, int *__restrict __sign,
      char *__restrict __buf, size_t __len)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
extern int qfcvt_r (long double __value, int __ndigit,
      int *__restrict __decpt, int *__restrict __sign,
      char *__restrict __buf, size_t __len)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));







extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) ;


extern int mbtowc (wchar_t *__restrict __pwc,
     __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) ;


extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) ;



extern size_t mbstowcs (wchar_t *__restrict __pwcs,
   __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__));

extern size_t wcstombs (char *__restrict __s,
   __const wchar_t *__restrict __pwcs, size_t __n)
     __attribute__ ((__nothrow__));








extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
# 896 "/usr/include/stdlib.h" 3 4
extern int getsubopt (char **__restrict __optionp,
        char *__const *__restrict __tokens,
        char **__restrict __valuep)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))) ;
# 948 "/usr/include/stdlib.h" 3 4
extern int getloadavg (double __loadavg[], int __nelem)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
# 964 "/usr/include/stdlib.h" 3 4

# 29 "/home/kibi/allegro4.4-4.4.2/include/allegro/base.h" 2
# 1 "/usr/include/time.h" 1 3 4
# 30 "/usr/include/time.h" 3 4








# 1 "/usr/lib/gcc/ia64-linux-gnu/4.6/include/stddef.h" 1 3 4
# 39 "/usr/include/time.h" 2 3 4



# 1 "/usr/include/ia64-linux-gnu/bits/time.h" 1 3 4
# 43 "/usr/include/time.h" 2 3 4
# 131 "/usr/include/time.h" 3 4


struct tm
{
  int tm_sec;
  int tm_min;
  int tm_hour;
  int tm_mday;
  int tm_mon;
  int tm_year;
  int tm_wday;
  int tm_yday;
  int tm_isdst;


  long int tm_gmtoff;
  __const char *tm_zone;




};








struct itimerspec
  {
    struct timespec it_interval;
    struct timespec it_value;
  };


struct sigevent;
# 180 "/usr/include/time.h" 3 4



extern clock_t clock (void) __attribute__ ((__nothrow__));


extern time_t time (time_t *__timer) __attribute__ ((__nothrow__));


extern double difftime (time_t __time1, time_t __time0)
     __attribute__ ((__nothrow__)) __attribute__ ((__const__));


extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__));





extern size_t strftime (char *__restrict __s, size_t __maxsize,
   __const char *__restrict __format,
   __const struct tm *__restrict __tp) __attribute__ ((__nothrow__));

# 215 "/usr/include/time.h" 3 4
# 1 "/usr/include/xlocale.h" 1 3 4
# 28 "/usr/include/xlocale.h" 3 4
typedef struct __locale_struct
{

  struct __locale_data *__locales[13];


  const unsigned short int *__ctype_b;
  const int *__ctype_tolower;
  const int *__ctype_toupper;


  const char *__names[13];
} *__locale_t;


typedef __locale_t locale_t;
# 216 "/usr/include/time.h" 2 3 4

extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
     __const char *__restrict __format,
     __const struct tm *__restrict __tp,
     __locale_t __loc) __attribute__ ((__nothrow__));
# 230 "/usr/include/time.h" 3 4



extern struct tm *gmtime (__const time_t *__timer) __attribute__ ((__nothrow__));



extern struct tm *localtime (__const time_t *__timer) __attribute__ ((__nothrow__));





extern struct tm *gmtime_r (__const time_t *__restrict __timer,
       struct tm *__restrict __tp) __attribute__ ((__nothrow__));



extern struct tm *localtime_r (__const time_t *__restrict __timer,
          struct tm *__restrict __tp) __attribute__ ((__nothrow__));





extern char *asctime (__const struct tm *__tp) __attribute__ ((__nothrow__));


extern char *ctime (__const time_t *__timer) __attribute__ ((__nothrow__));







extern char *asctime_r (__const struct tm *__restrict __tp,
   char *__restrict __buf) __attribute__ ((__nothrow__));


extern char *ctime_r (__const time_t *__restrict __timer,
        char *__restrict __buf) __attribute__ ((__nothrow__));




extern char *__tzname[2];
extern int __daylight;
extern long int __timezone;




extern char *tzname[2];



extern void tzset (void) __attribute__ ((__nothrow__));



extern int daylight;
extern long int timezone;





extern int stime (__const time_t *__when) __attribute__ ((__nothrow__));
# 313 "/usr/include/time.h" 3 4
extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__));


extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__));


extern int dysize (int __year) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
# 328 "/usr/include/time.h" 3 4
extern int nanosleep (__const struct timespec *__requested_time,
        struct timespec *__remaining);



extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__));


extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__));


extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
     __attribute__ ((__nothrow__));






extern int clock_nanosleep (clockid_t __clock_id, int __flags,
       __const struct timespec *__req,
       struct timespec *__rem);


extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__));




extern int timer_create (clockid_t __clock_id,
    struct sigevent *__restrict __evp,
    timer_t *__restrict __timerid) __attribute__ ((__nothrow__));


extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__));


extern int timer_settime (timer_t __timerid, int __flags,
     __const struct itimerspec *__restrict __value,
     struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__));


extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
     __attribute__ ((__nothrow__));


extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__));
# 417 "/usr/include/time.h" 3 4

# 30 "/home/kibi/allegro4.4-4.4.2/include/allegro/base.h" 2
# 1 "/usr/include/string.h" 1 3 4
# 29 "/usr/include/string.h" 3 4





# 1 "/usr/lib/gcc/ia64-linux-gnu/4.6/include/stddef.h" 1 3 4
# 35 "/usr/include/string.h" 2 3 4









extern void *memcpy (void *__restrict __dest,
       __const void *__restrict __src, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));


extern void *memmove (void *__dest, __const void *__src, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));






extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
        int __c, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));





extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));


extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 95 "/usr/include/string.h" 3 4
extern void *memchr (__const void *__s, int __c, size_t __n)
      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));


# 126 "/usr/include/string.h" 3 4


extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));

extern char *strncpy (char *__restrict __dest,
        __const char *__restrict __src, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));


extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));

extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
        size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));


extern int strcmp (__const char *__s1, __const char *__s2)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));

extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));


extern int strcoll (__const char *__s1, __const char *__s2)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));

extern size_t strxfrm (char *__restrict __dest,
         __const char *__restrict __src, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));

# 165 "/usr/include/string.h" 3 4
extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));

extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n,
    __locale_t __l) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));





extern char *strdup (__const char *__s)
     __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));






extern char *strndup (__const char *__string, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
# 210 "/usr/include/string.h" 3 4

# 235 "/usr/include/string.h" 3 4
extern char *strchr (__const char *__s, int __c)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
# 262 "/usr/include/string.h" 3 4
extern char *strrchr (__const char *__s, int __c)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));


# 281 "/usr/include/string.h" 3 4



extern size_t strcspn (__const char *__s, __const char *__reject)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));


extern size_t strspn (__const char *__s, __const char *__accept)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 314 "/usr/include/string.h" 3 4
extern char *strpbrk (__const char *__s, __const char *__accept)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 342 "/usr/include/string.h" 3 4
extern char *strstr (__const char *__haystack, __const char *__needle)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));




extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));




extern char *__strtok_r (char *__restrict __s,
    __const char *__restrict __delim,
    char **__restrict __save_ptr)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));

extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
         char **__restrict __save_ptr)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
# 397 "/usr/include/string.h" 3 4


extern size_t strlen (__const char *__s)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));





extern size_t strnlen (__const char *__string, size_t __maxlen)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));





extern char *strerror (int __errnum) __attribute__ ((__nothrow__));

# 427 "/usr/include/string.h" 3 4
extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__))

                        __attribute__ ((__nonnull__ (2)));
# 445 "/usr/include/string.h" 3 4
extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__));





extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));



extern void bcopy (__const void *__src, void *__dest, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));


extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));


extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 489 "/usr/include/string.h" 3 4
extern char *index (__const char *__s, int __c)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
# 517 "/usr/include/string.h" 3 4
extern char *rindex (__const char *__s, int __c)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));




extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
# 536 "/usr/include/string.h" 3 4
extern int strcasecmp (__const char *__s1, __const char *__s2)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));


extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 559 "/usr/include/string.h" 3 4
extern char *strsep (char **__restrict __stringp,
       __const char *__restrict __delim)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));




extern char *strsignal (int __sig) __attribute__ ((__nothrow__));


extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));



extern char *__stpncpy (char *__restrict __dest,
   __const char *__restrict __src, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *stpncpy (char *__restrict __dest,
        __const char *__restrict __src, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
# 634 "/usr/include/string.h" 3 4
# 1 "/usr/include/ia64-linux-gnu/bits/string.h" 1 3 4
# 635 "/usr/include/string.h" 2 3 4


# 1 "/usr/include/ia64-linux-gnu/bits/string2.h" 1 3 4
# 80 "/usr/include/ia64-linux-gnu/bits/string2.h" 3 4
typedef struct { unsigned char __arr[2]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR2;
typedef struct { unsigned char __arr[3]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR3;
typedef struct { unsigned char __arr[4]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR4;
typedef struct { unsigned char __arr[5]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR5;
typedef struct { unsigned char __arr[6]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR6;
typedef struct { unsigned char __arr[7]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR7;
typedef struct { unsigned char __arr[8]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR8;
# 394 "/usr/include/ia64-linux-gnu/bits/string2.h" 3 4
extern void *__rawmemchr (const void *__s, int __c);
# 969 "/usr/include/ia64-linux-gnu/bits/string2.h" 3 4
extern __inline size_t __strcspn_c1 (__const char *__s, int __reject);
extern __inline size_t
__strcspn_c1 (__const char *__s, int __reject)
{
  register size_t __result = 0;
  while (__s[__result] != '\0' && __s[__result] != __reject)
    ++__result;
  return __result;
}

extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1,
         int __reject2);
extern __inline size_t
__strcspn_c2 (__const char *__s, int __reject1, int __reject2)
{
  register size_t __result = 0;
  while (__s[__result] != '\0' && __s[__result] != __reject1
  && __s[__result] != __reject2)
    ++__result;
  return __result;
}

extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1,
         int __reject2, int __reject3);
extern __inline size_t
__strcspn_c3 (__const char *__s, int __reject1, int __reject2,
       int __reject3)
{
  register size_t __result = 0;
  while (__s[__result] != '\0' && __s[__result] != __reject1
  && __s[__result] != __reject2 && __s[__result] != __reject3)
    ++__result;
  return __result;
}
# 1045 "/usr/include/ia64-linux-gnu/bits/string2.h" 3 4
extern __inline size_t __strspn_c1 (__const char *__s, int __accept);
extern __inline size_t
__strspn_c1 (__const char *__s, int __accept)
{
  register size_t __result = 0;

  while (__s[__result] == __accept)
    ++__result;
  return __result;
}

extern __inline size_t __strspn_c2 (__const char *__s, int __accept1,
        int __accept2);
extern __inline size_t
__strspn_c2 (__const char *__s, int __accept1, int __accept2)
{
  register size_t __result = 0;

  while (__s[__result] == __accept1 || __s[__result] == __accept2)
    ++__result;
  return __result;
}

extern __inline size_t __strspn_c3 (__const char *__s, int __accept1,
        int __accept2, int __accept3);
extern __inline size_t
__strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3)
{
  register size_t __result = 0;

  while (__s[__result] == __accept1 || __s[__result] == __accept2
  || __s[__result] == __accept3)
    ++__result;
  return __result;
}
# 1121 "/usr/include/ia64-linux-gnu/bits/string2.h" 3 4
extern __inline char *__strpbrk_c2 (__const char *__s, int __accept1,
         int __accept2);
extern __inline char *
__strpbrk_c2 (__const char *__s, int __accept1, int __accept2)
{

  while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
    ++__s;
  return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}

extern __inline char *__strpbrk_c3 (__const char *__s, int __accept1,
         int __accept2, int __accept3);
extern __inline char *
__strpbrk_c3 (__const char *__s, int __accept1, int __accept2,
       int __accept3)
{

  while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
  && *__s != __accept3)
    ++__s;
  return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}
# 1172 "/usr/include/ia64-linux-gnu/bits/string2.h" 3 4
extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
extern __inline char *
__strtok_r_1c (char *__s, char __sep, char **__nextp)
{
  char *__result;
  if (__s == ((void *)0))
    __s = *__nextp;
  while (*__s == __sep)
    ++__s;
  __result = ((void *)0);
  if (*__s != '\0')
    {
      __result = __s++;
      while (*__s != '\0')
 if (*__s++ == __sep)
   {
     __s[-1] = '\0';
     break;
   }
    }
  *__nextp = __s;
  return __result;
}
# 1204 "/usr/include/ia64-linux-gnu/bits/string2.h" 3 4
extern char *__strsep_g (char **__stringp, __const char *__delim);
# 1222 "/usr/include/ia64-linux-gnu/bits/string2.h" 3 4
extern __inline char *__strsep_1c (char **__s, char __reject);
extern __inline char *
__strsep_1c (char **__s, char __reject)
{
  register char *__retval = *__s;
  if (__retval != ((void *)0) && (*__s = (__extension__ (__builtin_constant_p (__reject) && !__builtin_constant_p (__retval) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : __builtin_strchr (__retval, __reject)))) != ((void *)0))
    *(*__s)++ = '\0';
  return __retval;
}

extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2);
extern __inline char *
__strsep_2c (char **__s, char __reject1, char __reject2)
{
  register char *__retval = *__s;
  if (__retval != ((void *)0))
    {
      register char *__cp = __retval;
      while (1)
 {
   if (*__cp == '\0')
     {
       __cp = ((void *)0);
   break;
     }
   if (*__cp == __reject1 || *__cp == __reject2)
     {
       *__cp++ = '\0';
       break;
     }
   ++__cp;
 }
      *__s = __cp;
    }
  return __retval;
}

extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2,
       char __reject3);
extern __inline char *
__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
{
  register char *__retval = *__s;
  if (__retval != ((void *)0))
    {
      register char *__cp = __retval;
      while (1)
 {
   if (*__cp == '\0')
     {
       __cp = ((void *)0);
   break;
     }
   if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3)
     {
       *__cp++ = '\0';
       break;
     }
   ++__cp;
 }
      *__s = __cp;
    }
  return __retval;
}
# 1303 "/usr/include/ia64-linux-gnu/bits/string2.h" 3 4
extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
# 1322 "/usr/include/ia64-linux-gnu/bits/string2.h" 3 4
extern char *__strndup (__const char *__string, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
# 638 "/usr/include/string.h" 2 3 4
# 646 "/usr/include/string.h" 3 4

# 31 "/home/kibi/allegro4.4-4.4.2/include/allegro/base.h" 2
# 41 "/home/kibi/allegro4.4-4.4.2/include/allegro/base.h"
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/internal/alconfig.h" 1
# 36 "/home/kibi/allegro4.4-4.4.2/include/allegro/internal/alconfig.h"
# 1 "/home/kibi/allegro4.4-4.4.2/build/include/allegro/platform/alplatf.h" 1
# 37 "/home/kibi/allegro4.4-4.4.2/include/allegro/internal/alconfig.h" 2
# 62 "/home/kibi/allegro4.4-4.4.2/include/allegro/internal/alconfig.h"
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/platform/alucfg.h" 1
# 19 "/home/kibi/allegro4.4-4.4.2/include/allegro/platform/alucfg.h"
# 1 "/usr/include/fcntl.h" 1 3 4
# 30 "/usr/include/fcntl.h" 3 4




# 1 "/usr/include/ia64-linux-gnu/bits/fcntl.h" 1 3 4
# 151 "/usr/include/ia64-linux-gnu/bits/fcntl.h" 3 4
struct flock
  {
    short int l_type;
    short int l_whence;
    __off_t l_start;
    __off_t l_len;
    __pid_t l_pid;
  };
# 247 "/usr/include/ia64-linux-gnu/bits/fcntl.h" 3 4

# 293 "/usr/include/ia64-linux-gnu/bits/fcntl.h" 3 4

# 35 "/usr/include/fcntl.h" 2 3 4






# 1 "/usr/include/ia64-linux-gnu/bits/stat.h" 1 3 4
# 34 "/usr/include/ia64-linux-gnu/bits/stat.h" 3 4
struct stat
  {
    __dev_t st_dev;
    __ino_t st_ino;
    __nlink_t st_nlink;
    __mode_t st_mode;
    __uid_t st_uid;
    __gid_t st_gid;
    int pad0;
    __dev_t st_rdev;
    __off_t st_size;







    struct timespec st_atim;
    struct timespec st_mtim;
    struct timespec st_ctim;
# 66 "/usr/include/ia64-linux-gnu/bits/stat.h" 3 4
    __blksize_t st_blksize;
    __blkcnt_t st_blocks;
    long int __unused[3];
  };
# 42 "/usr/include/fcntl.h" 2 3 4
# 110 "/usr/include/fcntl.h" 3 4
extern int fcntl (int __fd, int __cmd, ...);
# 119 "/usr/include/fcntl.h" 3 4
extern int open (__const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1)));
# 143 "/usr/include/fcntl.h" 3 4
extern int openat (int __fd, __const char *__file, int __oflag, ...)
     __attribute__ ((__nonnull__ (2)));
# 165 "/usr/include/fcntl.h" 3 4
extern int creat (__const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1)));
# 194 "/usr/include/fcntl.h" 3 4
extern int lockf (int __fd, int __cmd, __off_t __len);
# 211 "/usr/include/fcntl.h" 3 4
extern int posix_fadvise (int __fd, __off_t __offset, __off_t __len,
     int __advise) __attribute__ ((__nothrow__));
# 233 "/usr/include/fcntl.h" 3 4
extern int posix_fallocate (int __fd, __off_t __offset, __off_t __len);
# 255 "/usr/include/fcntl.h" 3 4

# 20 "/home/kibi/allegro4.4-4.4.2/include/allegro/platform/alucfg.h" 2
# 1 "/usr/include/unistd.h" 1 3 4
# 28 "/usr/include/unistd.h" 3 4

# 203 "/usr/include/unistd.h" 3 4
# 1 "/usr/include/ia64-linux-gnu/bits/posix_opt.h" 1 3 4
# 204 "/usr/include/unistd.h" 2 3 4



# 1 "/usr/include/ia64-linux-gnu/bits/environments.h" 1 3 4
# 23 "/usr/include/ia64-linux-gnu/bits/environments.h" 3 4
# 1 "/usr/include/ia64-linux-gnu/bits/wordsize.h" 1 3 4
# 24 "/usr/include/ia64-linux-gnu/bits/environments.h" 2 3 4
# 208 "/usr/include/unistd.h" 2 3 4
# 227 "/usr/include/unistd.h" 3 4
# 1 "/usr/lib/gcc/ia64-linux-gnu/4.6/include/stddef.h" 1 3 4
# 228 "/usr/include/unistd.h" 2 3 4
# 256 "/usr/include/unistd.h" 3 4
typedef __useconds_t useconds_t;
# 268 "/usr/include/unistd.h" 3 4
typedef __intptr_t intptr_t;






typedef __socklen_t socklen_t;
# 288 "/usr/include/unistd.h" 3 4
extern int access (__const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
# 305 "/usr/include/unistd.h" 3 4
extern int faccessat (int __fd, __const char *__file, int __type, int __flag)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ;
# 331 "/usr/include/unistd.h" 3 4
extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__));
# 350 "/usr/include/unistd.h" 3 4
extern int close (int __fd);






extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;





extern ssize_t write (int __fd, __const void *__buf, size_t __n) ;
# 373 "/usr/include/unistd.h" 3 4
extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
        __off_t __offset) ;






extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,
         __off_t __offset) ;
# 414 "/usr/include/unistd.h" 3 4
extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__)) ;
# 429 "/usr/include/unistd.h" 3 4
extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__));
# 441 "/usr/include/unistd.h" 3 4
extern unsigned int sleep (unsigned int __seconds);







extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
     __attribute__ ((__nothrow__));






extern int usleep (__useconds_t __useconds);
# 466 "/usr/include/unistd.h" 3 4
extern int pause (void);



extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;



extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) ;




extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;






extern int fchownat (int __fd, __const char *__file, __uid_t __owner,
       __gid_t __group, int __flag)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ;



extern int chdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;



extern int fchdir (int __fd) __attribute__ ((__nothrow__)) ;
# 508 "/usr/include/unistd.h" 3 4
extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__)) ;
# 522 "/usr/include/unistd.h" 3 4
extern char *getwd (char *__buf)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ;




extern int dup (int __fd) __attribute__ ((__nothrow__)) ;


extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__));
# 540 "/usr/include/unistd.h" 3 4
extern char **__environ;







extern int execve (__const char *__path, char *__const __argv[],
     char *__const __envp[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));




extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));




extern int execv (__const char *__path, char *__const __argv[])
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));



extern int execle (__const char *__path, __const char *__arg, ...)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));



extern int execl (__const char *__path, __const char *__arg, ...)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));



extern int execvp (__const char *__file, char *__const __argv[])
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));




extern int execlp (__const char *__file, __const char *__arg, ...)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
# 595 "/usr/include/unistd.h" 3 4
extern int nice (int __inc) __attribute__ ((__nothrow__)) ;




extern void _exit (int __status) __attribute__ ((__noreturn__));





# 1 "/usr/include/ia64-linux-gnu/bits/confname.h" 1 3 4
# 26 "/usr/include/ia64-linux-gnu/bits/confname.h" 3 4
enum
  {
    _PC_LINK_MAX,

    _PC_MAX_CANON,

    _PC_MAX_INPUT,

    _PC_NAME_MAX,

    _PC_PATH_MAX,

    _PC_PIPE_BUF,

    _PC_CHOWN_RESTRICTED,

    _PC_NO_TRUNC,

    _PC_VDISABLE,

    _PC_SYNC_IO,

    _PC_ASYNC_IO,

    _PC_PRIO_IO,

    _PC_SOCK_MAXBUF,

    _PC_FILESIZEBITS,

    _PC_REC_INCR_XFER_SIZE,

    _PC_REC_MAX_XFER_SIZE,

    _PC_REC_MIN_XFER_SIZE,

    _PC_REC_XFER_ALIGN,

    _PC_ALLOC_SIZE_MIN,

    _PC_SYMLINK_MAX,

    _PC_2_SYMLINKS

  };


enum
  {
    _SC_ARG_MAX,

    _SC_CHILD_MAX,

    _SC_CLK_TCK,

    _SC_NGROUPS_MAX,

    _SC_OPEN_MAX,

    _SC_STREAM_MAX,

    _SC_TZNAME_MAX,

    _SC_JOB_CONTROL,

    _SC_SAVED_IDS,

    _SC_REALTIME_SIGNALS,

    _SC_PRIORITY_SCHEDULING,

    _SC_TIMERS,

    _SC_ASYNCHRONOUS_IO,

    _SC_PRIORITIZED_IO,

    _SC_SYNCHRONIZED_IO,

    _SC_FSYNC,

    _SC_MAPPED_FILES,

    _SC_MEMLOCK,

    _SC_MEMLOCK_RANGE,

    _SC_MEMORY_PROTECTION,

    _SC_MESSAGE_PASSING,

    _SC_SEMAPHORES,

    _SC_SHARED_MEMORY_OBJECTS,

    _SC_AIO_LISTIO_MAX,

    _SC_AIO_MAX,

    _SC_AIO_PRIO_DELTA_MAX,

    _SC_DELAYTIMER_MAX,

    _SC_MQ_OPEN_MAX,

    _SC_MQ_PRIO_MAX,

    _SC_VERSION,

    _SC_PAGESIZE,


    _SC_RTSIG_MAX,

    _SC_SEM_NSEMS_MAX,

    _SC_SEM_VALUE_MAX,

    _SC_SIGQUEUE_MAX,

    _SC_TIMER_MAX,




    _SC_BC_BASE_MAX,

    _SC_BC_DIM_MAX,

    _SC_BC_SCALE_MAX,

    _SC_BC_STRING_MAX,

    _SC_COLL_WEIGHTS_MAX,

    _SC_EQUIV_CLASS_MAX,

    _SC_EXPR_NEST_MAX,

    _SC_LINE_MAX,

    _SC_RE_DUP_MAX,

    _SC_CHARCLASS_NAME_MAX,


    _SC_2_VERSION,

    _SC_2_C_BIND,

    _SC_2_C_DEV,

    _SC_2_FORT_DEV,

    _SC_2_FORT_RUN,

    _SC_2_SW_DEV,

    _SC_2_LOCALEDEF,


    _SC_PII,

    _SC_PII_XTI,

    _SC_PII_SOCKET,

    _SC_PII_INTERNET,

    _SC_PII_OSI,

    _SC_POLL,

    _SC_SELECT,

    _SC_UIO_MAXIOV,

    _SC_IOV_MAX = _SC_UIO_MAXIOV,

    _SC_PII_INTERNET_STREAM,

    _SC_PII_INTERNET_DGRAM,

    _SC_PII_OSI_COTS,

    _SC_PII_OSI_CLTS,

    _SC_PII_OSI_M,

    _SC_T_IOV_MAX,



    _SC_THREADS,

    _SC_THREAD_SAFE_FUNCTIONS,

    _SC_GETGR_R_SIZE_MAX,

    _SC_GETPW_R_SIZE_MAX,

    _SC_LOGIN_NAME_MAX,

    _SC_TTY_NAME_MAX,

    _SC_THREAD_DESTRUCTOR_ITERATIONS,

    _SC_THREAD_KEYS_MAX,

    _SC_THREAD_STACK_MIN,

    _SC_THREAD_THREADS_MAX,

    _SC_THREAD_ATTR_STACKADDR,

    _SC_THREAD_ATTR_STACKSIZE,

    _SC_THREAD_PRIORITY_SCHEDULING,

    _SC_THREAD_PRIO_INHERIT,

    _SC_THREAD_PRIO_PROTECT,

    _SC_THREAD_PROCESS_SHARED,


    _SC_NPROCESSORS_CONF,

    _SC_NPROCESSORS_ONLN,

    _SC_PHYS_PAGES,

    _SC_AVPHYS_PAGES,

    _SC_ATEXIT_MAX,

    _SC_PASS_MAX,


    _SC_XOPEN_VERSION,

    _SC_XOPEN_XCU_VERSION,

    _SC_XOPEN_UNIX,

    _SC_XOPEN_CRYPT,

    _SC_XOPEN_ENH_I18N,

    _SC_XOPEN_SHM,


    _SC_2_CHAR_TERM,

    _SC_2_C_VERSION,

    _SC_2_UPE,


    _SC_XOPEN_XPG2,

    _SC_XOPEN_XPG3,

    _SC_XOPEN_XPG4,


    _SC_CHAR_BIT,

    _SC_CHAR_MAX,

    _SC_CHAR_MIN,

    _SC_INT_MAX,

    _SC_INT_MIN,

    _SC_LONG_BIT,

    _SC_WORD_BIT,

    _SC_MB_LEN_MAX,

    _SC_NZERO,

    _SC_SSIZE_MAX,

    _SC_SCHAR_MAX,

    _SC_SCHAR_MIN,

    _SC_SHRT_MAX,

    _SC_SHRT_MIN,

    _SC_UCHAR_MAX,

    _SC_UINT_MAX,

    _SC_ULONG_MAX,

    _SC_USHRT_MAX,


    _SC_NL_ARGMAX,

    _SC_NL_LANGMAX,

    _SC_NL_MSGMAX,

    _SC_NL_NMAX,

    _SC_NL_SETMAX,

    _SC_NL_TEXTMAX,


    _SC_XBS5_ILP32_OFF32,

    _SC_XBS5_ILP32_OFFBIG,

    _SC_XBS5_LP64_OFF64,

    _SC_XBS5_LPBIG_OFFBIG,


    _SC_XOPEN_LEGACY,

    _SC_XOPEN_REALTIME,

    _SC_XOPEN_REALTIME_THREADS,


    _SC_ADVISORY_INFO,

    _SC_BARRIERS,

    _SC_BASE,

    _SC_C_LANG_SUPPORT,

    _SC_C_LANG_SUPPORT_R,

    _SC_CLOCK_SELECTION,

    _SC_CPUTIME,

    _SC_THREAD_CPUTIME,

    _SC_DEVICE_IO,

    _SC_DEVICE_SPECIFIC,

    _SC_DEVICE_SPECIFIC_R,

    _SC_FD_MGMT,

    _SC_FIFO,

    _SC_PIPE,

    _SC_FILE_ATTRIBUTES,

    _SC_FILE_LOCKING,

    _SC_FILE_SYSTEM,

    _SC_MONOTONIC_CLOCK,

    _SC_MULTI_PROCESS,

    _SC_SINGLE_PROCESS,

    _SC_NETWORKING,

    _SC_READER_WRITER_LOCKS,

    _SC_SPIN_LOCKS,

    _SC_REGEXP,

    _SC_REGEX_VERSION,

    _SC_SHELL,

    _SC_SIGNALS,

    _SC_SPAWN,

    _SC_SPORADIC_SERVER,

    _SC_THREAD_SPORADIC_SERVER,

    _SC_SYSTEM_DATABASE,

    _SC_SYSTEM_DATABASE_R,

    _SC_TIMEOUTS,

    _SC_TYPED_MEMORY_OBJECTS,

    _SC_USER_GROUPS,

    _SC_USER_GROUPS_R,

    _SC_2_PBS,

    _SC_2_PBS_ACCOUNTING,

    _SC_2_PBS_LOCATE,

    _SC_2_PBS_MESSAGE,

    _SC_2_PBS_TRACK,

    _SC_SYMLOOP_MAX,

    _SC_STREAMS,

    _SC_2_PBS_CHECKPOINT,


    _SC_V6_ILP32_OFF32,

    _SC_V6_ILP32_OFFBIG,

    _SC_V6_LP64_OFF64,

    _SC_V6_LPBIG_OFFBIG,


    _SC_HOST_NAME_MAX,

    _SC_TRACE,

    _SC_TRACE_EVENT_FILTER,

    _SC_TRACE_INHERIT,

    _SC_TRACE_LOG,


    _SC_LEVEL1_ICACHE_SIZE,

    _SC_LEVEL1_ICACHE_ASSOC,

    _SC_LEVEL1_ICACHE_LINESIZE,

    _SC_LEVEL1_DCACHE_SIZE,

    _SC_LEVEL1_DCACHE_ASSOC,

    _SC_LEVEL1_DCACHE_LINESIZE,

    _SC_LEVEL2_CACHE_SIZE,

    _SC_LEVEL2_CACHE_ASSOC,

    _SC_LEVEL2_CACHE_LINESIZE,

    _SC_LEVEL3_CACHE_SIZE,

    _SC_LEVEL3_CACHE_ASSOC,

    _SC_LEVEL3_CACHE_LINESIZE,

    _SC_LEVEL4_CACHE_SIZE,

    _SC_LEVEL4_CACHE_ASSOC,

    _SC_LEVEL4_CACHE_LINESIZE,



    _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,

    _SC_RAW_SOCKETS,


    _SC_V7_ILP32_OFF32,

    _SC_V7_ILP32_OFFBIG,

    _SC_V7_LP64_OFF64,

    _SC_V7_LPBIG_OFFBIG,


    _SC_SS_REPL_MAX,


    _SC_TRACE_EVENT_NAME_MAX,

    _SC_TRACE_NAME_MAX,

    _SC_TRACE_SYS_MAX,

    _SC_TRACE_USER_EVENT_MAX,


    _SC_XOPEN_STREAMS,


    _SC_THREAD_ROBUST_PRIO_INHERIT,

    _SC_THREAD_ROBUST_PRIO_PROTECT

  };


enum
  {
    _CS_PATH,


    _CS_V6_WIDTH_RESTRICTED_ENVS,



    _CS_GNU_LIBC_VERSION,

    _CS_GNU_LIBPTHREAD_VERSION,


    _CS_V5_WIDTH_RESTRICTED_ENVS,



    _CS_V7_WIDTH_RESTRICTED_ENVS,



    _CS_LFS_CFLAGS = 1000,

    _CS_LFS_LDFLAGS,

    _CS_LFS_LIBS,

    _CS_LFS_LINTFLAGS,

    _CS_LFS64_CFLAGS,

    _CS_LFS64_LDFLAGS,

    _CS_LFS64_LIBS,

    _CS_LFS64_LINTFLAGS,


    _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,

    _CS_XBS5_ILP32_OFF32_LDFLAGS,

    _CS_XBS5_ILP32_OFF32_LIBS,

    _CS_XBS5_ILP32_OFF32_LINTFLAGS,

    _CS_XBS5_ILP32_OFFBIG_CFLAGS,

    _CS_XBS5_ILP32_OFFBIG_LDFLAGS,

    _CS_XBS5_ILP32_OFFBIG_LIBS,

    _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,

    _CS_XBS5_LP64_OFF64_CFLAGS,

    _CS_XBS5_LP64_OFF64_LDFLAGS,

    _CS_XBS5_LP64_OFF64_LIBS,

    _CS_XBS5_LP64_OFF64_LINTFLAGS,

    _CS_XBS5_LPBIG_OFFBIG_CFLAGS,

    _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,

    _CS_XBS5_LPBIG_OFFBIG_LIBS,

    _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,


    _CS_POSIX_V6_ILP32_OFF32_CFLAGS,

    _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,

    _CS_POSIX_V6_ILP32_OFF32_LIBS,

    _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,

    _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,

    _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,

    _CS_POSIX_V6_ILP32_OFFBIG_LIBS,

    _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,

    _CS_POSIX_V6_LP64_OFF64_CFLAGS,

    _CS_POSIX_V6_LP64_OFF64_LDFLAGS,

    _CS_POSIX_V6_LP64_OFF64_LIBS,

    _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,

    _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,

    _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,

    _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,

    _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,


    _CS_POSIX_V7_ILP32_OFF32_CFLAGS,

    _CS_POSIX_V7_ILP32_OFF32_LDFLAGS,

    _CS_POSIX_V7_ILP32_OFF32_LIBS,

    _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS,

    _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS,

    _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS,

    _CS_POSIX_V7_ILP32_OFFBIG_LIBS,

    _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS,

    _CS_POSIX_V7_LP64_OFF64_CFLAGS,

    _CS_POSIX_V7_LP64_OFF64_LDFLAGS,

    _CS_POSIX_V7_LP64_OFF64_LIBS,

    _CS_POSIX_V7_LP64_OFF64_LINTFLAGS,

    _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS,

    _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS,

    _CS_POSIX_V7_LPBIG_OFFBIG_LIBS,

    _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS,


    _CS_V6_ENV,

    _CS_V7_ENV

  };
# 607 "/usr/include/unistd.h" 2 3 4


extern long int pathconf (__const char *__path, int __name)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));


extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__));


extern long int sysconf (int __name) __attribute__ ((__nothrow__));



extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__));




extern __pid_t getpid (void) __attribute__ ((__nothrow__));


extern __pid_t getppid (void) __attribute__ ((__nothrow__));




extern __pid_t getpgrp (void) __attribute__ ((__nothrow__));
# 643 "/usr/include/unistd.h" 3 4
extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__));

extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__));






extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__));
# 669 "/usr/include/unistd.h" 3 4
extern int setpgrp (void) __attribute__ ((__nothrow__));
# 686 "/usr/include/unistd.h" 3 4
extern __pid_t setsid (void) __attribute__ ((__nothrow__));



extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__));



extern __uid_t getuid (void) __attribute__ ((__nothrow__));


extern __uid_t geteuid (void) __attribute__ ((__nothrow__));


extern __gid_t getgid (void) __attribute__ ((__nothrow__));


extern __gid_t getegid (void) __attribute__ ((__nothrow__));




extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__)) ;
# 719 "/usr/include/unistd.h" 3 4
extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__));




extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__));




extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__));






extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__));




extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__));




extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__));
# 775 "/usr/include/unistd.h" 3 4
extern __pid_t fork (void) __attribute__ ((__nothrow__));







extern __pid_t vfork (void) __attribute__ ((__nothrow__));





extern char *ttyname (int __fd) __attribute__ ((__nothrow__));



extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ;



extern int isatty (int __fd) __attribute__ ((__nothrow__));





extern int ttyslot (void) __attribute__ ((__nothrow__));




extern int link (__const char *__from, __const char *__to)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ;




extern int linkat (int __fromfd, __const char *__from, int __tofd,
     __const char *__to, int __flags)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))) ;




extern int symlink (__const char *__from, __const char *__to)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ;




extern ssize_t readlink (__const char *__restrict __path,
    char *__restrict __buf, size_t __len)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ;




extern int symlinkat (__const char *__from, int __tofd,
        __const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ;


extern ssize_t readlinkat (int __fd, __const char *__restrict __path,
      char *__restrict __buf, size_t __len)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) ;



extern int unlink (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));



extern int unlinkat (int __fd, __const char *__name, int __flag)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));



extern int rmdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));



extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__));


extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__));






extern char *getlogin (void);







extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));




extern int setlogin (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
# 890 "/usr/include/unistd.h" 3 4
# 1 "/usr/include/getopt.h" 1 3 4
# 59 "/usr/include/getopt.h" 3 4
extern char *optarg;
# 73 "/usr/include/getopt.h" 3 4
extern int optind;




extern int opterr;



extern int optopt;
# 152 "/usr/include/getopt.h" 3 4
extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
       __attribute__ ((__nothrow__));
# 891 "/usr/include/unistd.h" 2 3 4







extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));






extern int sethostname (__const char *__name, size_t __len)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;



extern int sethostid (long int __id) __attribute__ ((__nothrow__)) ;





extern int getdomainname (char *__name, size_t __len)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
extern int setdomainname (__const char *__name, size_t __len)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;





extern int vhangup (void) __attribute__ ((__nothrow__));


extern int revoke (__const char *__file) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;







extern int profil (unsigned short int *__sample_buffer, size_t __size,
     size_t __offset, unsigned int __scale)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));





extern int acct (__const char *__name) __attribute__ ((__nothrow__));



extern char *getusershell (void) __attribute__ ((__nothrow__));
extern void endusershell (void) __attribute__ ((__nothrow__));
extern void setusershell (void) __attribute__ ((__nothrow__));





extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__)) ;






extern int chroot (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;



extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1)));
# 976 "/usr/include/unistd.h" 3 4
extern int fsync (int __fd);






extern long int gethostid (void);


extern void sync (void) __attribute__ ((__nothrow__));





extern int getpagesize (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));




extern int getdtablesize (void) __attribute__ ((__nothrow__));
# 1007 "/usr/include/unistd.h" 3 4
extern int truncate (__const char *__file, __off_t __length)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
# 1029 "/usr/include/unistd.h" 3 4
extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__)) ;
# 1050 "/usr/include/unistd.h" 3 4
extern int brk (void *__addr) __attribute__ ((__nothrow__)) ;





extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__));
# 1071 "/usr/include/unistd.h" 3 4
extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__));
# 1125 "/usr/include/unistd.h" 3 4
extern int fdatasync (int __fildes);
# 1154 "/usr/include/unistd.h" 3 4
extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
# 1163 "/usr/include/unistd.h" 3 4

# 21 "/home/kibi/allegro4.4-4.4.2/include/allegro/platform/alucfg.h" 2
# 37 "/home/kibi/allegro4.4-4.4.2/include/allegro/platform/alucfg.h"
# 1 "/home/kibi/allegro4.4-4.4.2/build/include/allegro/platform/alunixac.h" 1
# 38 "/home/kibi/allegro4.4-4.4.2/include/allegro/platform/alucfg.h" 2
# 63 "/home/kibi/allegro4.4-4.4.2/include/allegro/internal/alconfig.h" 2







# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/platform/astdint.h" 1
# 28 "/home/kibi/allegro4.4-4.4.2/include/allegro/platform/astdint.h"
# 1 "/usr/include/inttypes.h" 1 3 4
# 28 "/usr/include/inttypes.h" 3 4
# 1 "/usr/lib/gcc/ia64-linux-gnu/4.6/include/stdint.h" 1 3 4


# 1 "/usr/include/stdint.h" 1 3 4
# 27 "/usr/include/stdint.h" 3 4
# 1 "/usr/include/ia64-linux-gnu/bits/wchar.h" 1 3 4
# 28 "/usr/include/stdint.h" 2 3 4
# 1 "/usr/include/ia64-linux-gnu/bits/wordsize.h" 1 3 4
# 29 "/usr/include/stdint.h" 2 3 4
# 49 "/usr/include/stdint.h" 3 4
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;

typedef unsigned int uint32_t;



typedef unsigned long int uint64_t;
# 66 "/usr/include/stdint.h" 3 4
typedef signed char int_least8_t;
typedef short int int_least16_t;
typedef int int_least32_t;

typedef long int int_least64_t;






typedef unsigned char uint_least8_t;
typedef unsigned short int uint_least16_t;
typedef unsigned int uint_least32_t;

typedef unsigned long int uint_least64_t;
# 91 "/usr/include/stdint.h" 3 4
typedef signed char int_fast8_t;

typedef long int int_fast16_t;
typedef long int int_fast32_t;
typedef long int int_fast64_t;
# 104 "/usr/include/stdint.h" 3 4
typedef unsigned char uint_fast8_t;

typedef unsigned long int uint_fast16_t;
typedef unsigned long int uint_fast32_t;
typedef unsigned long int uint_fast64_t;
# 123 "/usr/include/stdint.h" 3 4
typedef unsigned long int uintptr_t;
# 135 "/usr/include/stdint.h" 3 4
typedef long int intmax_t;
typedef unsigned long int uintmax_t;
# 4 "/usr/lib/gcc/ia64-linux-gnu/4.6/include/stdint.h" 2 3 4
# 29 "/usr/include/inttypes.h" 2 3 4






typedef int __gwchar_t;
# 274 "/usr/include/inttypes.h" 3 4





typedef struct
  {
    long int quot;
    long int rem;
  } imaxdiv_t;
# 298 "/usr/include/inttypes.h" 3 4
extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__const__));


extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom)
      __attribute__ ((__nothrow__)) __attribute__ ((__const__));


extern intmax_t strtoimax (__const char *__restrict __nptr,
      char **__restrict __endptr, int __base) __attribute__ ((__nothrow__));


extern uintmax_t strtoumax (__const char *__restrict __nptr,
       char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__));


extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr,
      __gwchar_t **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__));


extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr,
       __gwchar_t ** __restrict __endptr, int __base)
     __attribute__ ((__nothrow__));





extern long int __strtol_internal (__const char *__restrict __nptr,
       char **__restrict __endptr,
       int __base, int __group)
  __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;

extern __inline intmax_t
__attribute__ ((__nothrow__)) strtoimax (__const char *__restrict nptr, char **__restrict endptr, int base)

{
  return __strtol_internal (nptr, endptr, base, 0);
}

extern unsigned long int __strtoul_internal (__const char *
          __restrict __nptr,
          char ** __restrict __endptr,
          int __base, int __group)
  __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;

extern __inline uintmax_t
__attribute__ ((__nothrow__)) strtoumax (__const char *__restrict nptr, char **__restrict endptr, int base)

{
  return __strtoul_internal (nptr, endptr, base, 0);
}

extern long int __wcstol_internal (__const __gwchar_t * __restrict __nptr,
       __gwchar_t **__restrict __endptr,
       int __base, int __group)
  __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;

extern __inline intmax_t
__attribute__ ((__nothrow__)) wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base)

{
  return __wcstol_internal (nptr, endptr, base, 0);
}

extern unsigned long int __wcstoul_internal (__const __gwchar_t *
          __restrict __nptr,
          __gwchar_t **
          __restrict __endptr,
          int __base, int __group)
  __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;

extern __inline uintmax_t
__attribute__ ((__nothrow__)) wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base)

{
  return __wcstoul_internal (nptr, endptr, base, 0);
}
# 442 "/usr/include/inttypes.h" 3 4

# 29 "/home/kibi/allegro4.4-4.4.2/include/allegro/platform/astdint.h" 2
# 71 "/home/kibi/allegro4.4-4.4.2/include/allegro/internal/alconfig.h" 2
# 316 "/home/kibi/allegro4.4-4.4.2/include/allegro/internal/alconfig.h"
   int _alemu_stricmp (const char *s1, const char *s2);




   char * _alemu_strlwr (char *string);




   char * _alemu_strupr (char *string);
# 401 "/home/kibi/allegro4.4-4.4.2/include/allegro/internal/alconfig.h"
   extern __inline__ int bmp_read24 (uintptr_t addr); extern __inline__ int bmp_read24 (uintptr_t addr) { unsigned char *p = (unsigned char *)addr; int c; c = ((*(unsigned char *)(p)) | (*((unsigned char *)(p) + 1) << 8) | (*((unsigned char *)(p) + 2) << 16)); return c; }
# 411 "/home/kibi/allegro4.4-4.4.2/include/allegro/internal/alconfig.h"
   extern __inline__ void bmp_write24 (uintptr_t addr, int c); extern __inline__ void bmp_write24 (uintptr_t addr, int c) { unsigned char *p = (unsigned char *)addr; ((*(unsigned char *)(p) = (c)), (*((unsigned char *)(p) + 1) = (c) >> 8), (*((unsigned char *)(p) + 2) = (c) >> 16)); }
# 42 "/home/kibi/allegro4.4-4.4.2/include/allegro/base.h" 2
# 94 "/home/kibi/allegro4.4-4.4.2/include/allegro/base.h"
extern int * allegro_errno;

typedef struct _DRIVER_INFO
{
   int id;
   void *driver;
   int autodetect;
} _DRIVER_INFO;
# 26 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2

# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/system.h" 1
# 22 "/home/kibi/allegro4.4-4.4.2/include/allegro/system.h"
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/base.h" 1
# 23 "/home/kibi/allegro4.4-4.4.2/include/allegro/system.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/unicode.h" 1
# 34 "/home/kibi/allegro4.4-4.4.2/include/allegro/unicode.h"
void set_uformat (int type);
int get_uformat (void);
void register_uformat (int type, int (*u_getc) (const char *s), int (*u_getx) (char **s), int (*u_setc) (char *s, int c), int (*u_width) (const char *s), int (*u_cwidth) (int c), int (*u_isok) (int c), int u_width_max);
void set_ucodepage (const unsigned short *table, const unsigned short *extras);

int need_uconvert (const char *s, int type, int newtype);
int uconvert_size (const char *s, int type, int newtype);
void do_uconvert (const char *s, int type, char *buf, int newtype, int size);
char * uconvert (const char *s, int type, char *buf, int newtype, int size);
int uwidth_max (int type);






extern char empty_string[];

extern int (*ugetc) (const char *s);
extern int (*ugetx) (char **s);
extern int (*ugetxc) (const char **s);
extern int (*usetc) (char *s, int c);
extern int (*uwidth) (const char *s);
extern int (*ucwidth) (int c);
extern int (*uisok) (int c);
int uoffset (const char *s, int idx);
int ugetat (const char *s, int idx);
int usetat (char *s, int idx, int c);
int uinsert (char *s, int idx, int c);
int uremove (char *s, int idx);
int utolower (int c);
int utoupper (int c);
int uisspace (int c);
int uisdigit (int c);
int ustrsize (const char *s);
int ustrsizez (const char *s);
char * _ustrdup (const char *src, void * (*malloc_func) (size_t));
char * ustrzcpy (char *dest, int size, const char *src);
char * ustrzcat (char *dest, int size, const char *src);
int ustrlen (const char *s);
int ustrcmp (const char *s1, const char *s2);
char * ustrzncpy (char *dest, int size, const char *src, int n);
char * ustrzncat (char *dest, int size, const char *src, int n);
int ustrncmp (const char *s1, const char *s2, int n);
int ustricmp (const char *s1, const char *s2);
int ustrnicmp (const char *s1, const char *s2, int n);
char * ustrlwr (char *s);
char * ustrupr (char *s);
char * ustrchr (const char *s, int c);
char * ustrrchr (const char *s, int c);
char * ustrstr (const char *s1, const char *s2);
char * ustrpbrk (const char *s, const char *set);
char * ustrtok (char *s, const char *set);
char * ustrtok_r (char *s, const char *set, char **last);
double uatof (const char *s);
long ustrtol (const char *s, char **endp, int base);
double ustrtod (const char *s, char **endp);
const char * ustrerror (int err);
int uszprintf (char *buf, int size, const char *format, ...) __attribute__ ((format (printf, 3, 4)));
int uvszprintf (char *buf, int size, const char *format, va_list args);
int usprintf (char *buf, const char *format, ...) __attribute__ ((format (printf, 2, 3)));
# 24 "/home/kibi/allegro4.4-4.4.2/include/allegro/system.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/config.h" 1
# 28 "/home/kibi/allegro4.4-4.4.2/include/allegro/config.h"
void set_config_file (const char *filename);
void set_config_data (const char *data, int length);
void override_config_file (const char *filename);
void override_config_data (const char *data, int length);
void flush_config_file (void);
void reload_config_texts (const char *new_language);

void push_config_state (void);
void pop_config_state (void);

void hook_config_section (const char *section, int (*intgetter) (const char *, int), const char * (*stringgetter) (const char *, const char *), void (*stringsetter) (const char *, const char *));
int config_is_hooked (const char *section);

const char * get_config_string (const char *section, const char *name, const char *def);
int get_config_int (const char *section, const char *name, int def);
int get_config_hex (const char *section, const char *name, int def);
float get_config_float (const char *section, const char *name, float def);
int get_config_id (const char *section, const char *name, int def);
char ** get_config_argv (const char *section, const char *name, int *argc);
const char * get_config_text (const char *msg);

void set_config_string (const char *section, const char *name, const char *val);
void set_config_int (const char *section, const char *name, int val);
void set_config_hex (const char *section, const char *name, int val);
void set_config_float (const char *section, const char *name, float val);
void set_config_id (const char *section, const char *name, int val);

int list_config_entries (const char *section, const char ***names);
int list_config_sections (const char ***names);
void free_config_entries (const char ***names);
# 25 "/home/kibi/allegro4.4-4.4.2/include/allegro/system.h" 2





struct RGB;
struct BITMAP;
struct GFX_VTABLE;
struct GFX_MODE;



extern char allegro_id[];
extern char allegro_error[];
# 70 "/home/kibi/allegro4.4-4.4.2/include/allegro/system.h"
extern int os_type;
extern int os_version;
extern int os_revision;
extern int os_multitasking;






int _install_allegro_version_check (int system_id, int *errno_ptr, int (*atexit_ptr) (void (*func) (void)), int version)
                                                                             ;

extern __inline__ int install_allegro (int system_id, int *errno_ptr, int (*atexit_ptr) (void (*func) (void))); extern __inline__ int install_allegro (int system_id, int *errno_ptr, int (*atexit_ptr) (void (*func) (void))) { return _install_allegro_version_check(system_id, errno_ptr, atexit_ptr, (((4)<<16)|((4)<<8)|(2))); }
# 94 "/home/kibi/allegro4.4-4.4.2/include/allegro/system.h"
void allegro_exit (void);

void allegro_message (const char *msg, ...) __attribute__ ((format (printf, 1, 2)));
void get_executable_name (char *output, int size);
int set_close_button_callback (void (*proc) (void));


void check_cpu (void);
# 193 "/home/kibi/allegro4.4-4.4.2/include/allegro/system.h"
extern char cpu_vendor[];
extern int cpu_family;
extern int cpu_model;
extern int cpu_capabilities;


typedef struct SYSTEM_DRIVER
{
   int id;
   const char *name;
   const char *desc;
   const char *ascii_name;
   int (*init) (void);
   void (*exit) (void);
   void (*get_executable_name) (char *output, int size);
   int (*find_resource) (char *dest, const char *resource, int size);
   void (*set_window_title) (const char *name);
   int (*set_close_button_callback) (void (*proc) (void));
   void (*message) (const char *msg);
   void (*assert) (const char *msg);
   void (*save_console_state) (void);
   void (*restore_console_state) (void);
   struct BITMAP * (*create_bitmap) (int color_depth, int width, int height);
   void (*created_bitmap) (struct BITMAP *bmp);
   struct BITMAP * (*create_sub_bitmap) (struct BITMAP *parent, int x, int y, int width, int height);
   void (*created_sub_bitmap) (struct BITMAP *bmp, struct BITMAP *parent);
   int (*destroy_bitmap) (struct BITMAP *bitmap);
   void (*read_hardware_palette) (void);
   void (*set_palette_range) (const struct RGB *p, int from, int to, int retracesync);
   struct GFX_VTABLE * (*get_vtable) (int color_depth);
   int (*set_display_switch_mode) (int mode);
   void (*display_switch_lock) (int lock, int foreground);
   int (*desktop_color_depth) (void);
   int (*get_desktop_resolution) (int *width, int *height);
   void (*get_gfx_safe_mode) (int *driver, struct GFX_MODE *mode);
   void (*yield_timeslice) (void);
   void * (*create_mutex) (void);
   void (*destroy_mutex) (void *handle);
   void (*lock_mutex) (void *handle);
   void (*unlock_mutex) (void *handle);
   _DRIVER_INFO * (*gfx_drivers) (void);
   _DRIVER_INFO * (*digi_drivers) (void);
   _DRIVER_INFO * (*midi_drivers) (void);
   _DRIVER_INFO * (*keyboard_drivers) (void);
   _DRIVER_INFO * (*mouse_drivers) (void);
   _DRIVER_INFO * (*joystick_drivers) (void);
   _DRIVER_INFO * (*timer_drivers) (void);
} SYSTEM_DRIVER;


extern SYSTEM_DRIVER system_none;
extern SYSTEM_DRIVER * system_driver;
extern _DRIVER_INFO _system_driver_list[];





# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/system.inl" 1
# 22 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/system.inl"
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/debug.h" 1
# 28 "/home/kibi/allegro4.4-4.4.2/include/allegro/debug.h"
void al_assert (const char *file, int linenr);
void al_trace (const char *msg, ...) __attribute__ ((format (printf, 1, 2)));

void register_assert_handler (int (*handler) (const char *msg));
void register_trace_handler (int (*handler) (const char *msg));
# 23 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/system.inl" 2






extern __inline__ void set_window_title (const char *name); extern __inline__ void set_window_title (const char *name) { ; if (system_driver->set_window_title) system_driver->set_window_title(name); }
# 38 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/system.inl"
extern __inline__ int desktop_color_depth (void); extern __inline__ int desktop_color_depth (void) { ; if (system_driver->desktop_color_depth) return system_driver->desktop_color_depth(); else return 0; }
# 49 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/system.inl"
extern __inline__ int get_desktop_resolution (int *width, int *height); extern __inline__ int get_desktop_resolution (int *width, int *height) { ; if (system_driver->get_desktop_resolution) return system_driver->get_desktop_resolution(width, height); else return -1; }
# 252 "/home/kibi/allegro4.4-4.4.2/include/allegro/system.h" 2
# 28 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/debug.h" 1
# 29 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2

# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/unicode.h" 1
# 31 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2

# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/mouse.h" 1
# 32 "/home/kibi/allegro4.4-4.4.2/include/allegro/mouse.h"
typedef struct MOUSE_DRIVER
{
   int id;
   const char *name;
   const char *desc;
   const char *ascii_name;
   int (*init) (void);
   void (*exit) (void);
   void (*poll) (void);
   void (*timer_poll) (void);
   void (*position) (int x, int y);
   void (*set_range) (int x1, int y_1, int x2, int y2);
   void (*set_speed) (int xspeed, int yspeed);
   void (*get_mickeys) (int *mickeyx, int *mickeyy);
   int (*analyse_data) (const char *buffer, int size);
   void (*enable_hardware_cursor) (int mode);
   int (*select_system_cursor) (int cursor);
} MOUSE_DRIVER;


extern MOUSE_DRIVER mousedrv_none;
extern MOUSE_DRIVER * mouse_driver;
extern _DRIVER_INFO _mouse_driver_list[];

int install_mouse (void);
void remove_mouse (void);

int poll_mouse (void);
int mouse_needs_poll (void);

void enable_hardware_cursor (void);
void disable_hardware_cursor (void);
# 74 "/home/kibi/allegro4.4-4.4.2/include/allegro/mouse.h"
extern struct BITMAP * mouse_sprite;
extern int mouse_x_focus;
extern int mouse_y_focus;

extern volatile int mouse_x;
extern volatile int mouse_y;
extern volatile int mouse_z;
extern volatile int mouse_w;
extern volatile int mouse_b;
extern volatile int mouse_pos;

extern volatile int freeze_mouse_flag;
# 97 "/home/kibi/allegro4.4-4.4.2/include/allegro/mouse.h"
extern void (*mouse_callback) (int flags);

void show_mouse (struct BITMAP *bmp);
void scare_mouse (void);
void scare_mouse_area (int x, int y, int w, int h);
void unscare_mouse (void);
void position_mouse (int x, int y);
void position_mouse_z (int z);
void position_mouse_w (int w);
void set_mouse_range (int x1, int y_1, int x2, int y2);
void set_mouse_speed (int xspeed, int yspeed);
void select_mouse_cursor (int cursor);
void set_mouse_cursor_bitmap (int cursor, struct BITMAP *bmp);
void set_mouse_sprite_focus (int x, int y);
void get_mouse_mickeys (int *mickeyx, int *mickeyy);
void set_mouse_sprite (struct BITMAP *sprite);
int show_os_cursor (int cursor);
int mouse_on_screen (void);
# 33 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/timer.h" 1
# 34 "/home/kibi/allegro4.4-4.4.2/include/allegro/timer.h"
typedef struct TIMER_DRIVER
{
   int id;
   const char *name;
   const char *desc;
   const char *ascii_name;
   int (*init) (void);
   void (*exit) (void);
   int (*install_int) (void (*proc) (void), long speed);
   void (*remove_int) (void (*proc) (void));
   int (*install_param_int) (void (*proc) (void *param), void *param, long speed);
   void (*remove_param_int) (void (*proc) (void *param), void *param);
   int (*can_simulate_retrace) (void);
   void (*simulate_retrace) (int enable);
   void (*rest) (unsigned int tyme, void (*callback) (void));
} TIMER_DRIVER;


extern TIMER_DRIVER * timer_driver;
extern _DRIVER_INFO _timer_driver_list[];

int install_timer (void);
void remove_timer (void);

int install_int_ex (void (*proc) (void), long speed);
int install_int (void (*proc) (void), long speed);
void remove_int (void (*proc) (void));

int install_param_int_ex (void (*proc) (void *param), void *param, long speed);
int install_param_int (void (*proc) (void *param), void *param, long speed);
void remove_param_int (void (*proc) (void *param), void *param);

extern volatile int retrace_count;

void rest (unsigned int tyme);
void rest_callback (unsigned int tyme, void (*callback) (void));
# 34 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/keyboard.h" 1
# 28 "/home/kibi/allegro4.4-4.4.2/include/allegro/keyboard.h"
typedef struct KEYBOARD_DRIVER
{
   int id;
   const char *name;
   const char *desc;
   const char *ascii_name;
   int autorepeat;
   int (*init) (void);
   void (*exit) (void);
   void (*poll) (void);
   void (*set_leds) (int leds);
   void (*set_rate) (int delay, int rate);
   void (*wait_for_input) (void);
   void (*stop_waiting_for_input) (void);
   int (*scancode_to_ascii) (int scancode);
   const char * (*scancode_to_name) (int scancode);
} KEYBOARD_DRIVER;


extern KEYBOARD_DRIVER * keyboard_driver;
extern _DRIVER_INFO _keyboard_driver_list[];

int install_keyboard (void);
void remove_keyboard (void);

int poll_keyboard (void);
int keyboard_needs_poll (void);

extern int (*keyboard_callback) (int key);
extern int (*keyboard_ucallback) (int key, int *scancode);
extern void (*keyboard_lowlevel_callback) (int scancode);

void install_keyboard_hooks (int (*keypressed) (void), int (*readkey) (void));

extern volatile char key[];
extern volatile int key_shifts;

extern int three_finger_flag;
extern int key_led_flag;

int keypressed (void);
int readkey (void);
int ureadkey (int *scancode);
void simulate_keypress (int keycode);
void simulate_ukeypress (int keycode, int scancode);
void clear_keybuf (void);
void set_leds (int leds);
void set_keyboard_rate (int delay, int repeat);
int scancode_to_ascii (int scancode);
const char * scancode_to_name (int scancode);







enum {
   __allegro_KB_SHIFT_FLAG = 0x0001,
   __allegro_KB_CTRL_FLAG = 0x0002,
   __allegro_KB_ALT_FLAG = 0x0004,
   __allegro_KB_LWIN_FLAG = 0x0008,
   __allegro_KB_RWIN_FLAG = 0x0010,
   __allegro_KB_MENU_FLAG = 0x0020,
   __allegro_KB_COMMAND_FLAG = 0x0040,
   __allegro_KB_SCROLOCK_FLAG = 0x0100,
   __allegro_KB_NUMLOCK_FLAG = 0x0200,
   __allegro_KB_CAPSLOCK_FLAG = 0x0400,
   __allegro_KB_INALTSEQ_FLAG = 0x0800,
   __allegro_KB_ACCENT1_FLAG = 0x1000,
   __allegro_KB_ACCENT2_FLAG = 0x2000,
   __allegro_KB_ACCENT3_FLAG = 0x4000,
   __allegro_KB_ACCENT4_FLAG = 0x8000
};

enum {
   __allegro_KEY_A = 1,
   __allegro_KEY_B = 2,
   __allegro_KEY_C = 3,
   __allegro_KEY_D = 4,
   __allegro_KEY_E = 5,
   __allegro_KEY_F = 6,
   __allegro_KEY_G = 7,
   __allegro_KEY_H = 8,
   __allegro_KEY_I = 9,
   __allegro_KEY_J = 10,
   __allegro_KEY_K = 11,
   __allegro_KEY_L = 12,
   __allegro_KEY_M = 13,
   __allegro_KEY_N = 14,
   __allegro_KEY_O = 15,
   __allegro_KEY_P = 16,
   __allegro_KEY_Q = 17,
   __allegro_KEY_R = 18,
   __allegro_KEY_S = 19,
   __allegro_KEY_T = 20,
   __allegro_KEY_U = 21,
   __allegro_KEY_V = 22,
   __allegro_KEY_W = 23,
   __allegro_KEY_X = 24,
   __allegro_KEY_Y = 25,
   __allegro_KEY_Z = 26,
   __allegro_KEY_0 = 27,
   __allegro_KEY_1 = 28,
   __allegro_KEY_2 = 29,
   __allegro_KEY_3 = 30,
   __allegro_KEY_4 = 31,
   __allegro_KEY_5 = 32,
   __allegro_KEY_6 = 33,
   __allegro_KEY_7 = 34,
   __allegro_KEY_8 = 35,
   __allegro_KEY_9 = 36,
   __allegro_KEY_0_PAD = 37,
   __allegro_KEY_1_PAD = 38,
   __allegro_KEY_2_PAD = 39,
   __allegro_KEY_3_PAD = 40,
   __allegro_KEY_4_PAD = 41,
   __allegro_KEY_5_PAD = 42,
   __allegro_KEY_6_PAD = 43,
   __allegro_KEY_7_PAD = 44,
   __allegro_KEY_8_PAD = 45,
   __allegro_KEY_9_PAD = 46,
   __allegro_KEY_F1 = 47,
   __allegro_KEY_F2 = 48,
   __allegro_KEY_F3 = 49,
   __allegro_KEY_F4 = 50,
   __allegro_KEY_F5 = 51,
   __allegro_KEY_F6 = 52,
   __allegro_KEY_F7 = 53,
   __allegro_KEY_F8 = 54,
   __allegro_KEY_F9 = 55,
   __allegro_KEY_F10 = 56,
   __allegro_KEY_F11 = 57,
   __allegro_KEY_F12 = 58,
   __allegro_KEY_ESC = 59,
   __allegro_KEY_TILDE = 60,
   __allegro_KEY_MINUS = 61,
   __allegro_KEY_EQUALS = 62,
   __allegro_KEY_BACKSPACE = 63,
   __allegro_KEY_TAB = 64,
   __allegro_KEY_OPENBRACE = 65,
   __allegro_KEY_CLOSEBRACE = 66,
   __allegro_KEY_ENTER = 67,
   __allegro_KEY_COLON = 68,
   __allegro_KEY_QUOTE = 69,
   __allegro_KEY_BACKSLASH = 70,
   __allegro_KEY_BACKSLASH2 = 71,
   __allegro_KEY_COMMA = 72,
   __allegro_KEY_STOP = 73,
   __allegro_KEY_SLASH = 74,
   __allegro_KEY_SPACE = 75,
   __allegro_KEY_INSERT = 76,
   __allegro_KEY_DEL = 77,
   __allegro_KEY_HOME = 78,
   __allegro_KEY_END = 79,
   __allegro_KEY_PGUP = 80,
   __allegro_KEY_PGDN = 81,
   __allegro_KEY_LEFT = 82,
   __allegro_KEY_RIGHT = 83,
   __allegro_KEY_UP = 84,
   __allegro_KEY_DOWN = 85,
   __allegro_KEY_SLASH_PAD = 86,
   __allegro_KEY_ASTERISK = 87,
   __allegro_KEY_MINUS_PAD = 88,
   __allegro_KEY_PLUS_PAD = 89,
   __allegro_KEY_DEL_PAD = 90,
   __allegro_KEY_ENTER_PAD = 91,
   __allegro_KEY_PRTSCR = 92,
   __allegro_KEY_PAUSE = 93,
   __allegro_KEY_ABNT_C1 = 94,
   __allegro_KEY_YEN = 95,
   __allegro_KEY_KANA = 96,
   __allegro_KEY_CONVERT = 97,
   __allegro_KEY_NOCONVERT = 98,
   __allegro_KEY_AT = 99,
   __allegro_KEY_CIRCUMFLEX = 100,
   __allegro_KEY_COLON2 = 101,
   __allegro_KEY_KANJI = 102,
   __allegro_KEY_EQUALS_PAD = 103,
   __allegro_KEY_BACKQUOTE = 104,
   __allegro_KEY_SEMICOLON = 105,
   __allegro_KEY_COMMAND = 106,
   __allegro_KEY_UNKNOWN1 = 107,
   __allegro_KEY_UNKNOWN2 = 108,
   __allegro_KEY_UNKNOWN3 = 109,
   __allegro_KEY_UNKNOWN4 = 110,
   __allegro_KEY_UNKNOWN5 = 111,
   __allegro_KEY_UNKNOWN6 = 112,
   __allegro_KEY_UNKNOWN7 = 113,
   __allegro_KEY_UNKNOWN8 = 114,

   __allegro_KEY_MODIFIERS = 115,

   __allegro_KEY_LSHIFT = 115,
   __allegro_KEY_RSHIFT = 116,
   __allegro_KEY_LCONTROL = 117,
   __allegro_KEY_RCONTROL = 118,
   __allegro_KEY_ALT = 119,
   __allegro_KEY_ALTGR = 120,
   __allegro_KEY_LWIN = 121,
   __allegro_KEY_RWIN = 122,
   __allegro_KEY_MENU = 123,
   __allegro_KEY_SCRLOCK = 124,
   __allegro_KEY_NUMLOCK = 125,
   __allegro_KEY_CAPSLOCK = 126,

   __allegro_KEY_MAX = 127
};
# 35 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/joystick.h" 1
# 39 "/home/kibi/allegro4.4-4.4.2/include/allegro/joystick.h"
typedef struct JOYSTICK_AXIS_INFO
{
   int pos;
   int d1, d2;
   const char *name;
} JOYSTICK_AXIS_INFO;



typedef struct JOYSTICK_STICK_INFO
{
   int flags;
   int num_axis;
   JOYSTICK_AXIS_INFO axis[3];
   const char *name;
} JOYSTICK_STICK_INFO;



typedef struct JOYSTICK_BUTTON_INFO
{
   int b;
   const char *name;
} JOYSTICK_BUTTON_INFO;



typedef struct JOYSTICK_INFO
{
   int flags;
   int num_sticks;
   int num_buttons;
   JOYSTICK_STICK_INFO stick[5];
   JOYSTICK_BUTTON_INFO button[32];
} JOYSTICK_INFO;
# 92 "/home/kibi/allegro4.4-4.4.2/include/allegro/joystick.h"
extern JOYSTICK_INFO joy[];
extern int num_joysticks;


typedef struct JOYSTICK_DRIVER
{
   int id;
   const char *name;
   const char *desc;
   const char *ascii_name;
   int (*init) (void);
   void (*exit) (void);
   int (*poll) (void);
   int (*save_data) (void);
   int (*load_data) (void);
   const char * (*calibrate_name) (int n);
   int (*calibrate) (int n);
} JOYSTICK_DRIVER;


extern JOYSTICK_DRIVER joystick_none;
extern JOYSTICK_DRIVER * joystick_driver;
extern _DRIVER_INFO _joystick_driver_list[];
# 128 "/home/kibi/allegro4.4-4.4.2/include/allegro/joystick.h"
int install_joystick (int type);
void remove_joystick (void);

int poll_joystick (void);

int save_joystick_data (const char *filename);
int load_joystick_data (const char *filename);

const char * calibrate_joystick_name (int n);
int calibrate_joystick (int n);
# 36 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2

# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/palette.h" 1
# 26 "/home/kibi/allegro4.4-4.4.2/include/allegro/palette.h"
typedef struct RGB
{
   unsigned char r, g, b;
   unsigned char filler;
} RGB;



typedef RGB PALETTE[256];
# 38 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/gfx.h" 1
# 22 "/home/kibi/allegro4.4-4.4.2/include/allegro/gfx.h"
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/3d.h" 1
# 23 "/home/kibi/allegro4.4-4.4.2/include/allegro/3d.h"
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/fixed.h" 1
# 28 "/home/kibi/allegro4.4-4.4.2/include/allegro/fixed.h"
typedef int32_t fixed;

extern const fixed fixtorad_r;
extern const fixed radtofix_r;
# 24 "/home/kibi/allegro4.4-4.4.2/include/allegro/3d.h" 2





struct BITMAP;

typedef struct V3D
{
   fixed x, y, z;
   fixed u, v;
   int c;
} V3D;


typedef struct V3D_f
{
   float x, y, z;
   float u, v;
   int c;
} V3D_f;
# 65 "/home/kibi/allegro4.4-4.4.2/include/allegro/3d.h"
extern float scene_gap;

void _soft_polygon3d (struct BITMAP *bmp, int type, struct BITMAP *texture, int vc, V3D *vtx[]);
void _soft_polygon3d_f (struct BITMAP *bmp, int type, struct BITMAP *texture, int vc, V3D_f *vtx[]);
void _soft_triangle3d (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D *v1, V3D *v2, V3D *v3);
void _soft_triangle3d_f (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3);
void _soft_quad3d (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D *v1, V3D *v2, V3D *v3, V3D *v4);
void _soft_quad3d_f (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3, V3D_f *v4);
int clip3d (int type, fixed min_z, fixed max_z, int vc, const V3D *vtx[], V3D *vout[], V3D *vtmp[], int out[]);
int clip3d_f (int type, float min_z, float max_z, int vc, const V3D_f *vtx[], V3D_f *vout[], V3D_f *vtmp[], int out[]);

fixed polygon_z_normal (const V3D *v1, const V3D *v2, const V3D *v3);
float polygon_z_normal_f (const V3D_f *v1, const V3D_f *v2, const V3D_f *v3);





typedef struct BITMAP ZBUFFER;

ZBUFFER * create_zbuffer (struct BITMAP *bmp);
ZBUFFER * create_sub_zbuffer (ZBUFFER *parent, int x, int y, int width, int height);
void set_zbuffer (ZBUFFER *zbuf);
void clear_zbuffer (ZBUFFER *zbuf, float z);
void destroy_zbuffer (ZBUFFER *zbuf);

int create_scene (int nedge, int npoly);
void clear_scene (struct BITMAP* bmp);
void destroy_scene (void);
int scene_polygon3d (int type, struct BITMAP *texture, int vx, V3D *vtx[]);
int scene_polygon3d_f (int type, struct BITMAP *texture, int vx, V3D_f *vtx[]);
void render_scene (void);
# 23 "/home/kibi/allegro4.4-4.4.2/include/allegro/gfx.h" 2







struct RLE_SPRITE;
struct FONT_GLYPH;
struct RGB;
# 69 "/home/kibi/allegro4.4-4.4.2/include/allegro/gfx.h"
typedef struct GFX_MODE
{
   int width, height, bpp;
} GFX_MODE;

typedef struct GFX_MODE_LIST
{
   int num_modes;
   GFX_MODE *mode;
} GFX_MODE_LIST;

typedef struct GFX_DRIVER
{
   int id;
   const char *name;
   const char *desc;
   const char *ascii_name;
   struct BITMAP * (*init) (int w, int h, int v_w, int v_h, int color_depth);
   void (*exit) (struct BITMAP *b);
   int (*scroll) (int x, int y);
   void (*vsync) (void);
   void (*set_palette) (const struct RGB *p, int from, int to, int retracesync);
   int (*request_scroll) (int x, int y);
   int (*poll_scroll) (void);
   void (*enable_triple_buffer) (void);
   struct BITMAP * (*create_video_bitmap) (int width, int height);
   void (*destroy_video_bitmap) (struct BITMAP *bitmap);
   int (*show_video_bitmap) (struct BITMAP *bitmap);
   int (*request_video_bitmap) (struct BITMAP *bitmap);
   struct BITMAP * (*create_system_bitmap) (int width, int height);
   void (*destroy_system_bitmap) (struct BITMAP *bitmap);
   int (*set_mouse_sprite) (struct BITMAP *sprite, int xfocus, int yfocus);
   int (*show_mouse) (struct BITMAP *bmp, int x, int y);
   void (*hide_mouse) (void);
   void (*move_mouse) (int x, int y);
   void (*drawing_mode) (void);
   void (*save_video_state) (void);
   void (*restore_video_state) (void);
   void (*set_blender_mode) (int mode, int r, int g, int b, int a);
   GFX_MODE_LIST * (*fetch_mode_list) (void);
   int w, h;
   int linear;
   long bank_size;
   long bank_gran;
   long vid_mem;
   long vid_phys_base;
   int windowed;
} GFX_DRIVER;


extern GFX_DRIVER * gfx_driver;
extern _DRIVER_INFO _gfx_driver_list[];
# 162 "/home/kibi/allegro4.4-4.4.2/include/allegro/gfx.h"
extern int gfx_capabilities;


typedef struct GFX_VTABLE
{
   int color_depth;
   int mask_color;
   void *unwrite_bank;
   void (*set_clip) (struct BITMAP *bmp);
   void (*acquire) (struct BITMAP *bmp);
   void (*release) (struct BITMAP *bmp);
   struct BITMAP * (*create_sub_bitmap) (struct BITMAP *parent, int x, int y, int width, int height);
   void (*created_sub_bitmap) (struct BITMAP *bmp, struct BITMAP *parent);
   int (*getpixel) (struct BITMAP *bmp, int x, int y);
   void (*putpixel) (struct BITMAP *bmp, int x, int y, int color);
   void (*vline) (struct BITMAP *bmp, int x, int y_1, int y2, int color);
   void (*hline) (struct BITMAP *bmp, int x1, int y, int x2, int color);
   void (*hfill) (struct BITMAP *bmp, int x1, int y, int x2, int color);
   void (*line) (struct BITMAP *bmp, int x1, int y_1, int x2, int y2, int color);
   void (*fastline) (struct BITMAP *bmp, int x1, int y_1, int x2, int y2, int color);
   void (*rectfill) (struct BITMAP *bmp, int x1, int y_1, int x2, int y2, int color);
   void (*triangle) (struct BITMAP *bmp, int x1, int y_1, int x2, int y2, int x3, int y3, int color);
   void (*draw_sprite) (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y);
   void (*draw_256_sprite) (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y);
   void (*draw_sprite_v_flip) (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y);
   void (*draw_sprite_h_flip) (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y);
   void (*draw_sprite_vh_flip) (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y);
   void (*draw_trans_sprite) (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y);
   void (*draw_trans_rgba_sprite) (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y);
   void (*draw_lit_sprite) (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y, int color);
   void (*draw_rle_sprite) (struct BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y);
   void (*draw_trans_rle_sprite) (struct BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y);
   void (*draw_trans_rgba_rle_sprite) (struct BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y);
   void (*draw_lit_rle_sprite) (struct BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y, int color);
   void (*draw_character) (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y, int color, int bg);
   void (*draw_glyph) (struct BITMAP *bmp, const struct FONT_GLYPH *glyph, int x, int y, int color, int bg);
   void (*blit_from_memory) (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
   void (*blit_to_memory) (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
   void (*blit_from_system) (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
   void (*blit_to_system) (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
   void (*blit_to_self) (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
   void (*blit_to_self_forward) (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
   void (*blit_to_self_backward) (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
   void (*blit_between_formats) (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
   void (*masked_blit) (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
   void (*clear_to_color) (struct BITMAP *bitmap, int color);
   void (*pivot_scaled_sprite_flip) (struct BITMAP *bmp, struct BITMAP *sprite, fixed x, fixed y, fixed cx, fixed cy, fixed angle, fixed scale, int v_flip);
   void (*do_stretch_blit) (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int source_width, int source_height, int dest_x, int dest_y, int dest_width, int dest_height, int masked);
   void (*draw_gouraud_sprite) (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y, int c1, int c2, int c3, int c4);
   void (*draw_sprite_end) (void);
   void (*blit_end) (void);
   void (*polygon) (struct BITMAP *bmp, int vertices, const int *points, int color);
   void (*rect) (struct BITMAP *bmp, int x1, int y_1, int x2, int y2, int color);
   void (*circle) (struct BITMAP *bmp, int x, int y, int radius, int color);
   void (*circlefill) (struct BITMAP *bmp, int x, int y, int radius, int color);
   void (*ellipse) (struct BITMAP *bmp, int x, int y, int rx, int ry, int color);
   void (*ellipsefill) (struct BITMAP *bmp, int x, int y, int rx, int ry, int color);
   void (*arc) (struct BITMAP *bmp, int x, int y, fixed ang1, fixed ang2, int r, int color);
   void (*spline) (struct BITMAP *bmp, const int points[8], int color);
   void (*floodfill) (struct BITMAP *bmp, int x, int y, int color);
   void (*polygon3d) (struct BITMAP *bmp, int type, struct BITMAP *texture, int vc, V3D *vtx[]);
   void (*polygon3d_f) (struct BITMAP *bmp, int type, struct BITMAP *texture, int vc, V3D_f *vtx[]);
   void (*triangle3d) (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D *v1, V3D *v2, V3D *v3);
   void (*triangle3d_f) (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3);
   void (*quad3d) (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D *v1, V3D *v2, V3D *v3, V3D *v4);
   void (*quad3d_f) (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3, V3D_f *v4);

   void (*draw_sprite_ex) (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y, int mode, int flip );
} GFX_VTABLE;


extern GFX_VTABLE __linear_vtable8;
extern GFX_VTABLE __linear_vtable15;
extern GFX_VTABLE __linear_vtable16;
extern GFX_VTABLE __linear_vtable24;
extern GFX_VTABLE __linear_vtable32;


typedef struct _VTABLE_INFO
{
   int color_depth;
   GFX_VTABLE *vtable;
} _VTABLE_INFO;

extern _VTABLE_INFO _vtable_list[];
# 274 "/home/kibi/allegro4.4-4.4.2/include/allegro/gfx.h"
typedef struct BITMAP
{
   int w, h;
   int clip;
   int cl, cr, ct, cb;
   GFX_VTABLE *vtable;
   void *write_bank;
   void *read_bank;
   void *dat;
   unsigned long id;
   void *extra;
   int x_ofs;
   int y_ofs;
   int seg;
   unsigned char * line[];
} BITMAP;
# 302 "/home/kibi/allegro4.4-4.4.2/include/allegro/gfx.h"
extern BITMAP * screen;
# 404 "/home/kibi/allegro4.4-4.4.2/include/allegro/gfx.h"
GFX_MODE_LIST * get_gfx_mode_list (int card);
void destroy_gfx_mode_list (GFX_MODE_LIST *gfx_mode_list);
void set_color_depth (int depth);
int get_color_depth (void);
void set_color_conversion (int mode);
int get_color_conversion (void);
void request_refresh_rate (int rate);
int get_refresh_rate (void);
int set_gfx_mode (int card, int w, int h, int v_w, int v_h);
int scroll_screen (int x, int y);
int request_scroll (int x, int y);
int poll_scroll (void);
int show_video_bitmap (BITMAP *bitmap);
int request_video_bitmap (BITMAP *bitmap);
int enable_triple_buffer (void);
BITMAP * create_bitmap (int width, int height);
BITMAP * create_bitmap_ex (int color_depth, int width, int height);
BITMAP * create_sub_bitmap (BITMAP *parent, int x, int y, int width, int height);
BITMAP * create_video_bitmap (int width, int height);
BITMAP * create_system_bitmap (int width, int height);
void destroy_bitmap (BITMAP *bitmap);
void set_clip_rect (BITMAP *bitmap, int x1, int y_1, int x2, int y2);
void add_clip_rect (BITMAP *bitmap, int x1, int y_1, int x2, int y2);
void clear_bitmap (BITMAP *bitmap);
void vsync (void);
# 438 "/home/kibi/allegro4.4-4.4.2/include/allegro/gfx.h"
int get_gfx_mode_type (int graphics_card);
int get_gfx_mode (void);
# 451 "/home/kibi/allegro4.4-4.4.2/include/allegro/gfx.h"
int set_display_switch_mode (int mode);
int get_display_switch_mode (void);
int set_display_switch_callback (int dir, void (*cb) (void));
void remove_display_switch_callback (void (*cb) (void));

void lock_bitmap (struct BITMAP *bmp);





# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/gfx.inl" 1
# 25 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/gfx.inl"
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/asm.inl" 1
# 26 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/gfx.inl" 2
# 37 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/gfx.inl"
extern __inline__ int _default_ds (void); extern __inline__ int _default_ds (void) { return 0; }
# 58 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/gfx.inl"
typedef uintptr_t (*_BMP_BANK_SWITCHER) (BITMAP *bmp, int lyne);
typedef void (*_BMP_UNBANK_SWITCHER) (BITMAP *bmp);


extern __inline__ uintptr_t bmp_write_line (BITMAP *bmp, int lyne); extern __inline__ uintptr_t bmp_write_line (BITMAP *bmp, int lyne) { _BMP_BANK_SWITCHER switcher = (_BMP_BANK_SWITCHER)bmp->write_bank; return switcher(bmp, lyne); }






extern __inline__ uintptr_t bmp_read_line (BITMAP *bmp, int lyne); extern __inline__ uintptr_t bmp_read_line (BITMAP *bmp, int lyne) { _BMP_BANK_SWITCHER switcher = (_BMP_BANK_SWITCHER)bmp->read_bank; return switcher(bmp, lyne); }






extern __inline__ void bmp_unwrite_line (BITMAP *bmp); extern __inline__ void bmp_unwrite_line (BITMAP *bmp) { _BMP_UNBANK_SWITCHER switcher = (_BMP_UNBANK_SWITCHER)bmp->vtable->unwrite_bank; switcher(bmp); }
# 87 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/gfx.inl"
extern __inline__ int is_windowed_mode (void); extern __inline__ int is_windowed_mode (void) { ; return gfx_driver->windowed; }
# 96 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/gfx.inl"
extern __inline__ void clear_to_color (BITMAP *bitmap, int color); extern __inline__ void clear_to_color (BITMAP *bitmap, int color) { ; bitmap->vtable->clear_to_color(bitmap, color); }







extern __inline__ int bitmap_color_depth (BITMAP *bmp); extern __inline__ int bitmap_color_depth (BITMAP *bmp) { ; return bmp->vtable->color_depth; }







extern __inline__ int bitmap_mask_color (BITMAP *bmp); extern __inline__ int bitmap_mask_color (BITMAP *bmp) { ; return bmp->vtable->mask_color; }







extern __inline__ int is_same_bitmap (BITMAP *bmp1, BITMAP *bmp2); extern __inline__ int is_same_bitmap (BITMAP *bmp1, BITMAP *bmp2) { unsigned long m1; unsigned long m2; if ((!bmp1) || (!bmp2)) return 0; if (bmp1 == bmp2) return -1; m1 = bmp1->id & 0x01FFFFFF; m2 = bmp2->id & 0x01FFFFFF; return ((m1) && (m1 == m2)); }
# 138 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/gfx.inl"
extern __inline__ int is_linear_bitmap (BITMAP *bmp); extern __inline__ int is_linear_bitmap (BITMAP *bmp) { ; return (bmp->id & 0x10000000) == 0; }







extern __inline__ int is_planar_bitmap (BITMAP *bmp); extern __inline__ int is_planar_bitmap (BITMAP *bmp) { ; return (bmp->id & 0x10000000) != 0; }







extern __inline__ int is_memory_bitmap (BITMAP *bmp); extern __inline__ int is_memory_bitmap (BITMAP *bmp) { ; return (bmp->id & (0x80000000 | 0x40000000)) == 0; }







extern __inline__ int is_screen_bitmap (BITMAP *bmp); extern __inline__ int is_screen_bitmap (BITMAP *bmp) { ; return is_same_bitmap(bmp, screen); }







extern __inline__ int is_video_bitmap (BITMAP *bmp); extern __inline__ int is_video_bitmap (BITMAP *bmp) { ; return (bmp->id & 0x80000000) != 0; }







extern __inline__ int is_system_bitmap (BITMAP *bmp); extern __inline__ int is_system_bitmap (BITMAP *bmp) { ; return (bmp->id & 0x40000000) != 0; }







extern __inline__ int is_sub_bitmap (BITMAP *bmp); extern __inline__ int is_sub_bitmap (BITMAP *bmp) { ; return (bmp->id & 0x20000000) != 0; }
# 203 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/gfx.inl"
extern __inline__ void acquire_bitmap (BITMAP *bmp); extern __inline__ void acquire_bitmap (BITMAP *bmp) { ; if (bmp->vtable->acquire) bmp->vtable->acquire(bmp); }
# 212 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/gfx.inl"
extern __inline__ void release_bitmap (BITMAP *bmp); extern __inline__ void release_bitmap (BITMAP *bmp) { ; if (bmp->vtable->release) bmp->vtable->release(bmp); }
# 221 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/gfx.inl"
extern __inline__ void acquire_screen (void); extern __inline__ void acquire_screen (void) { acquire_bitmap(screen); }





extern __inline__ void release_screen (void); extern __inline__ void release_screen (void) { release_bitmap(screen); }







extern __inline__ int is_inside_bitmap (BITMAP *bmp, int x, int y, int clip); extern __inline__ int is_inside_bitmap (BITMAP *bmp, int x, int y, int clip) { ; if (clip) { if (bmp->clip) return (x >= bmp->cl) && (y >= bmp->ct) && (x < bmp->cr) && (y < bmp->cb); else return -1; } else return (unsigned int)x < (unsigned int)bmp->w && (unsigned int)y < (unsigned int)bmp->h; }
# 252 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/gfx.inl"
extern __inline__ void get_clip_rect (BITMAP *bitmap, int *x1, int *y_1, int *x2, int *y2); extern __inline__ void get_clip_rect (BITMAP *bitmap, int *x1, int *y_1, int *x2, int *y2) { ; *x1 = bitmap->cl; *y_1 = bitmap->ct; *x2 = bitmap->cr-1; *y2 = bitmap->cb-1; }
# 263 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/gfx.inl"
extern __inline__ void set_clip_state (BITMAP *bitmap, int state); extern __inline__ void set_clip_state (BITMAP *bitmap, int state) { ; bitmap->clip = state; }






extern __inline__ int get_clip_state (BITMAP *bitmap); extern __inline__ int get_clip_state (BITMAP *bitmap) { ; return bitmap->clip; }
# 463 "/home/kibi/allegro4.4-4.4.2/include/allegro/gfx.h" 2
# 39 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/color.h" 1
# 23 "/home/kibi/allegro4.4-4.4.2/include/allegro/color.h"
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/palette.h" 1
# 24 "/home/kibi/allegro4.4-4.4.2/include/allegro/color.h" 2





struct BITMAP;

extern PALETTE black_palette;
extern PALETTE desktop_palette;
extern PALETTE default_palette;

typedef struct {
   unsigned char data[32][32][32];
} RGB_MAP;

typedef struct {
   unsigned char data[256][256];
} COLOR_MAP;

extern RGB_MAP * rgb_map;
extern COLOR_MAP * color_map;

extern PALETTE _current_palette;

extern int _rgb_r_shift_15;
extern int _rgb_g_shift_15;
extern int _rgb_b_shift_15;
extern int _rgb_r_shift_16;
extern int _rgb_g_shift_16;
extern int _rgb_b_shift_16;
extern int _rgb_r_shift_24;
extern int _rgb_g_shift_24;
extern int _rgb_b_shift_24;
extern int _rgb_r_shift_32;
extern int _rgb_g_shift_32;
extern int _rgb_b_shift_32;
extern int _rgb_a_shift_32;

extern int _rgb_scale_5[];
extern int _rgb_scale_6[];







extern int * palette_color;

void set_color (int idx, const RGB *p);
void set_palette (const PALETTE p);
void set_palette_range (const PALETTE p, int from, int to, int retracesync);

void get_color (int idx, RGB *p);
void get_palette (PALETTE p);
void get_palette_range (PALETTE p, int from, int to);

void fade_interpolate (const PALETTE source, const PALETTE dest, PALETTE output, int pos, int from, int to);
void fade_from_range (const PALETTE source, const PALETTE dest, int speed, int from, int to);
void fade_in_range (const PALETTE p, int speed, int from, int to);
void fade_out_range (int speed, int from, int to);
void fade_from (const PALETTE source, const PALETTE dest, int speed);
void fade_in (const PALETTE p, int speed);
void fade_out (int speed);

void select_palette (const PALETTE p);
void unselect_palette (void);

void generate_332_palette (PALETTE pal);
int generate_optimized_palette (struct BITMAP *image, PALETTE pal, const signed char rsvdcols[256]);

void create_rgb_table (RGB_MAP *table, const PALETTE pal, void (*callback) (int pos));
void create_light_table (COLOR_MAP *table, const PALETTE pal, int r, int g, int b, void (*callback) (int pos));
void create_trans_table (COLOR_MAP *table, const PALETTE pal, int r, int g, int b, void (*callback) (int pos));
void create_color_table (COLOR_MAP *table, const PALETTE pal, void (*blend) (const PALETTE pal, int x, int y, RGB *rgb), void (*callback) (int pos));
void create_blender_table (COLOR_MAP *table, const PALETTE pal, void (*callback) (int pos));

typedef unsigned long (*BLENDER_FUNC) (unsigned long x, unsigned long y, unsigned long n);

void set_blender_mode (BLENDER_FUNC b15, BLENDER_FUNC b16, BLENDER_FUNC b24, int r, int g, int b, int a);
void set_blender_mode_ex (BLENDER_FUNC b15, BLENDER_FUNC b16, BLENDER_FUNC b24, BLENDER_FUNC b32, BLENDER_FUNC b15x, BLENDER_FUNC b16x, BLENDER_FUNC b24x, int r, int g, int b, int a);

void set_alpha_blender (void);
void set_write_alpha_blender (void);
void set_trans_blender (int r, int g, int b, int a);
void set_add_blender (int r, int g, int b, int a);
void set_burn_blender (int r, int g, int b, int a);
void set_color_blender (int r, int g, int b, int a);
void set_difference_blender (int r, int g, int b, int a);
void set_dissolve_blender (int r, int g, int b, int a);
void set_dodge_blender (int r, int g, int b, int a);
void set_hue_blender (int r, int g, int b, int a);
void set_invert_blender (int r, int g, int b, int a);
void set_luminance_blender (int r, int g, int b, int a);
void set_multiply_blender (int r, int g, int b, int a);
void set_saturation_blender (int r, int g, int b, int a);
void set_screen_blender (int r, int g, int b, int a);

void hsv_to_rgb (float h, float s, float v, int *r, int *g, int *b);
void rgb_to_hsv (int r, int g, int b, float *h, float *s, float *v);

int bestfit_color (const PALETTE pal, int r, int g, int b);

int makecol (int r, int g, int b);
int makecol8 (int r, int g, int b);
int makecol_depth (int color_depth, int r, int g, int b);

int makeacol (int r, int g, int b, int a);
int makeacol_depth (int color_depth, int r, int g, int b, int a);

int makecol15_dither (int r, int g, int b, int x, int y);
int makecol16_dither (int r, int g, int b, int x, int y);

int getr (int c);
int getg (int c);
int getb (int c);
int geta (int c);

int getr_depth (int color_depth, int c);
int getg_depth (int color_depth, int c);
int getb_depth (int color_depth, int c);
int geta_depth (int color_depth, int c);





# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/color.inl" 1
# 26 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/color.inl"
extern __inline__ int makecol15 (int r, int g, int b); extern __inline__ int makecol15 (int r, int g, int b) { return (((r >> 3) << _rgb_r_shift_15) | ((g >> 3) << _rgb_g_shift_15) | ((b >> 3) << _rgb_b_shift_15)); }







extern __inline__ int makecol16 (int r, int g, int b); extern __inline__ int makecol16 (int r, int g, int b) { return (((r >> 3) << _rgb_r_shift_16) | ((g >> 2) << _rgb_g_shift_16) | ((b >> 3) << _rgb_b_shift_16)); }







extern __inline__ int makecol24 (int r, int g, int b); extern __inline__ int makecol24 (int r, int g, int b) { return ((r << _rgb_r_shift_24) | (g << _rgb_g_shift_24) | (b << _rgb_b_shift_24)); }







extern __inline__ int makecol32 (int r, int g, int b); extern __inline__ int makecol32 (int r, int g, int b) { return ((r << _rgb_r_shift_32) | (g << _rgb_g_shift_32) | (b << _rgb_b_shift_32)); }







extern __inline__ int makeacol32 (int r, int g, int b, int a); extern __inline__ int makeacol32 (int r, int g, int b, int a) { return ((r << _rgb_r_shift_32) | (g << _rgb_g_shift_32) | (b << _rgb_b_shift_32) | (a << _rgb_a_shift_32)); }
# 67 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/color.inl"
extern __inline__ int getr8 (int c); extern __inline__ int getr8 (int c) { return _rgb_scale_6[(int)_current_palette[c].r]; }





extern __inline__ int getg8 (int c); extern __inline__ int getg8 (int c) { return _rgb_scale_6[(int)_current_palette[c].g]; }





extern __inline__ int getb8 (int c); extern __inline__ int getb8 (int c) { return _rgb_scale_6[(int)_current_palette[c].b]; }





extern __inline__ int getr15 (int c); extern __inline__ int getr15 (int c) { return _rgb_scale_5[(c >> _rgb_r_shift_15) & 0x1F]; }





extern __inline__ int getg15 (int c); extern __inline__ int getg15 (int c) { return _rgb_scale_5[(c >> _rgb_g_shift_15) & 0x1F]; }





extern __inline__ int getb15 (int c); extern __inline__ int getb15 (int c) { return _rgb_scale_5[(c >> _rgb_b_shift_15) & 0x1F]; }





extern __inline__ int getr16 (int c); extern __inline__ int getr16 (int c) { return _rgb_scale_5[(c >> _rgb_r_shift_16) & 0x1F]; }





extern __inline__ int getg16 (int c); extern __inline__ int getg16 (int c) { return _rgb_scale_6[(c >> _rgb_g_shift_16) & 0x3F]; }





extern __inline__ int getb16 (int c); extern __inline__ int getb16 (int c) { return _rgb_scale_5[(c >> _rgb_b_shift_16) & 0x1F]; }





extern __inline__ int getr24 (int c); extern __inline__ int getr24 (int c) { return ((c >> _rgb_r_shift_24) & 0xFF); }





extern __inline__ int getg24 (int c); extern __inline__ int getg24 (int c) { return ((c >> _rgb_g_shift_24) & 0xFF); }





extern __inline__ int getb24 (int c); extern __inline__ int getb24 (int c) { return ((c >> _rgb_b_shift_24) & 0xFF); }





extern __inline__ int getr32 (int c); extern __inline__ int getr32 (int c) { return ((c >> _rgb_r_shift_32) & 0xFF); }





extern __inline__ int getg32 (int c); extern __inline__ int getg32 (int c) { return ((c >> _rgb_g_shift_32) & 0xFF); }





extern __inline__ int getb32 (int c); extern __inline__ int getb32 (int c) { return ((c >> _rgb_b_shift_32) & 0xFF); }





extern __inline__ int geta32 (int c); extern __inline__ int geta32 (int c) { return ((c >> _rgb_a_shift_32) & 0xFF); }







extern __inline__ void _set_color (int idx, const RGB *p); extern __inline__ void _set_color (int idx, const RGB *p) { set_color(idx, p); }
# 152 "/home/kibi/allegro4.4-4.4.2/include/allegro/color.h" 2
# 40 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/draw.h" 1
# 24 "/home/kibi/allegro4.4-4.4.2/include/allegro/draw.h"
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/gfx.h" 1
# 25 "/home/kibi/allegro4.4-4.4.2/include/allegro/draw.h" 2
# 37 "/home/kibi/allegro4.4-4.4.2/include/allegro/draw.h"
void drawing_mode (int mode, struct BITMAP *pattern, int x_anchor, int y_anchor);
void xor_mode (int on);
void solid_mode (void);
void do_line (struct BITMAP *bmp, int x1, int y_1, int x2, int y2, int d, void (*proc) (struct BITMAP *, int, int, int));
void _soft_triangle (struct BITMAP *bmp, int x1, int y_1, int x2, int y2, int x3, int y3, int color);
void _soft_polygon (struct BITMAP *bmp, int vertices, const int *points, int color);
void _soft_rect (struct BITMAP *bmp, int x1, int y_1, int x2, int y2, int color);
void do_circle (struct BITMAP *bmp, int x, int y, int radius, int d, void (*proc) (struct BITMAP *, int, int, int));
void _soft_circle (struct BITMAP *bmp, int x, int y, int radius, int color);
void _soft_circlefill (struct BITMAP *bmp, int x, int y, int radius, int color);
void do_ellipse (struct BITMAP *bmp, int x, int y, int rx, int ry, int d, void (*proc) (struct BITMAP *, int, int, int));
void _soft_ellipse (struct BITMAP *bmp, int x, int y, int rx, int ry, int color);
void _soft_ellipsefill (struct BITMAP *bmp, int x, int y, int rx, int ry, int color);
void do_arc (struct BITMAP *bmp, int x, int y, fixed ang1, fixed ang2, int r, int d, void (*proc) (struct BITMAP *, int, int, int));
void _soft_arc (struct BITMAP *bmp, int x, int y, fixed ang1, fixed ang2, int r, int color);
void calc_spline (const int points[8], int npts, int *x, int *y);
void _soft_spline (struct BITMAP *bmp, const int points[8], int color);
void _soft_floodfill (struct BITMAP *bmp, int x, int y, int color);
void blit (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
void masked_blit (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
void stretch_blit (struct BITMAP *s, struct BITMAP *d, int s_x, int s_y, int s_w, int s_h, int d_x, int d_y, int d_w, int d_h);
void masked_stretch_blit (struct BITMAP *s, struct BITMAP *d, int s_x, int s_y, int s_w, int s_h, int d_x, int d_y, int d_w, int d_h);
void stretch_sprite (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y, int w, int h);
void _soft_draw_gouraud_sprite (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y, int c1, int c2, int c3, int c4);


void rotate_sprite_trans (BITMAP *bmp, BITMAP *sprite, int x, int y, fixed angle);
void rotate_sprite_v_flip_trans (BITMAP *bmp, BITMAP *sprite, int x, int y, fixed angle);
void rotate_scaled_sprite_trans (BITMAP *bmp, BITMAP *sprite, int x, int y, fixed angle, fixed scale);
void rotate_scaled_sprite_v_flip_trans (BITMAP *bmp, BITMAP *sprite, int x, int y, fixed angle, fixed scale);
void pivot_sprite_trans (BITMAP *bmp, BITMAP *sprite, int x, int y, int cx, int cy, fixed angle);
void pivot_sprite_v_flip_trans (BITMAP *bmp, BITMAP *sprite, int x, int y, int cx, int cy, fixed angle);
void pivot_scaled_sprite_trans (BITMAP *bmp, BITMAP *sprite, int x, int y, int cx, int cy, fixed angle, fixed scale);
void pivot_scaled_sprite_v_flip_trans (BITMAP *bmp, BITMAP *sprite, int x, int y, int cx, int cy, fixed angle, fixed scale);

void rotate_sprite_lit (BITMAP *bmp, BITMAP *sprite, int x, int y, fixed angle, int color);
void rotate_sprite_v_flip_lit (BITMAP *bmp, BITMAP *sprite, int x, int y, fixed angle, int color);
void rotate_scaled_sprite_lit (BITMAP *bmp, BITMAP *sprite, int x, int y, fixed angle, fixed scale, int color);
void rotate_scaled_sprite_v_flip_lit (BITMAP *bmp, BITMAP *sprite, int x, int y, fixed angle, fixed scale, int color);
void pivot_sprite_lit (BITMAP *bmp, BITMAP *sprite, int x, int y, int cx, int cy, fixed angle, int color);
void pivot_sprite_v_flip_lit (BITMAP *bmp, BITMAP *sprite, int x, int y, int cx, int cy, fixed angle, int color);
void pivot_scaled_sprite_lit (BITMAP *bmp, BITMAP *sprite, int x, int y, int cx, int cy, fixed angle, fixed scale, int color);
void pivot_scaled_sprite_v_flip_lit (BITMAP *bmp, BITMAP *sprite, int x, int y, int cx, int cy, fixed angle, fixed scale, int color);







# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl" 1
# 23 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/3d.h" 1
# 24 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/gfx.inl" 1
# 25 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl" 2





extern __inline__ int getpixel (BITMAP *bmp, int x, int y); extern __inline__ int getpixel (BITMAP *bmp, int x, int y) { ; return bmp->vtable->getpixel(bmp, x, y); }







extern __inline__ void putpixel (BITMAP *bmp, int x, int y, int color); extern __inline__ void putpixel (BITMAP *bmp, int x, int y, int color) { ; bmp->vtable->putpixel(bmp, x, y, color); }







extern __inline__ void _allegro_vline (BITMAP *bmp, int x, int y_1, int y2, int color); extern __inline__ void _allegro_vline (BITMAP *bmp, int x, int y_1, int y2, int color) { ; bmp->vtable->vline(bmp, x, y_1, y2, color); }







extern __inline__ void _allegro_hline (BITMAP *bmp, int x1, int y, int x2, int color); extern __inline__ void _allegro_hline (BITMAP *bmp, int x1, int y, int x2, int color) { ; bmp->vtable->hline(bmp, x1, y, x2, color); }
# 67 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
   static __attribute__((unused)) __inline__ void vline(BITMAP *bmp, int x, int y_1, int y2, int color) { _allegro_vline(bmp, x, y_1, y2, color); }
   static __attribute__((unused)) __inline__ void hline(BITMAP *bmp, int x1, int y, int x2, int color) { _allegro_hline(bmp, x1, y, x2, color); }



extern __inline__ void line (BITMAP *bmp, int x1, int y_1, int x2, int y2, int color); extern __inline__ void line (BITMAP *bmp, int x1, int y_1, int x2, int y2, int color) { ; bmp->vtable->line(bmp, x1, y_1, x2, y2, color); }







extern __inline__ void fastline (BITMAP *bmp, int x1, int y_1, int x2, int y2, int color); extern __inline__ void fastline (BITMAP *bmp, int x1, int y_1, int x2, int y2, int color) { ; bmp->vtable->fastline(bmp, x1, y_1, x2, y2, color); }







extern __inline__ void rectfill (BITMAP *bmp, int x1, int y_1, int x2, int y2, int color); extern __inline__ void rectfill (BITMAP *bmp, int x1, int y_1, int x2, int y2, int color) { ; bmp->vtable->rectfill(bmp, x1, y_1, x2, y2, color); }







extern __inline__ void triangle (BITMAP *bmp, int x1, int y_1, int x2, int y2, int x3, int y3, int color); extern __inline__ void triangle (BITMAP *bmp, int x1, int y_1, int x2, int y2, int x3, int y3, int color) { ; bmp->vtable->triangle(bmp, x1, y_1, x2, y2, x3, y3, color); }







extern __inline__ void polygon (BITMAP *bmp, int vertices, const int *points, int color); extern __inline__ void polygon (BITMAP *bmp, int vertices, const int *points, int color) { ; bmp->vtable->polygon(bmp, vertices, points, color); }







extern __inline__ void rect (BITMAP *bmp, int x1, int y_1, int x2, int y2, int color); extern __inline__ void rect (BITMAP *bmp, int x1, int y_1, int x2, int y2, int color) { ; bmp->vtable->rect(bmp, x1, y_1, x2, y2, color); }







extern __inline__ void circle (BITMAP *bmp, int x, int y, int radius, int color); extern __inline__ void circle (BITMAP *bmp, int x, int y, int radius, int color) { ; bmp->vtable->circle(bmp, x, y, radius, color); }







extern __inline__ void circlefill (BITMAP *bmp, int x, int y, int radius, int color); extern __inline__ void circlefill (BITMAP *bmp, int x, int y, int radius, int color) { ; bmp->vtable->circlefill(bmp, x, y, radius, color); }
# 137 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void ellipse (BITMAP *bmp, int x, int y, int rx, int ry, int color); extern __inline__ void ellipse (BITMAP *bmp, int x, int y, int rx, int ry, int color) { ; bmp->vtable->ellipse(bmp, x, y, rx, ry, color); }
# 146 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void ellipsefill (BITMAP *bmp, int x, int y, int rx, int ry, int color); extern __inline__ void ellipsefill (BITMAP *bmp, int x, int y, int rx, int ry, int color) { ; bmp->vtable->ellipsefill(bmp, x, y, rx, ry, color); }
# 155 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void arc (BITMAP *bmp, int x, int y, fixed ang1, fixed ang2, int r, int color); extern __inline__ void arc (BITMAP *bmp, int x, int y, fixed ang1, fixed ang2, int r, int color) { ; bmp->vtable->arc(bmp, x, y, ang1, ang2, r, color); }
# 164 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void spline (BITMAP *bmp, const int points[8], int color); extern __inline__ void spline (BITMAP *bmp, const int points[8], int color) { ; bmp->vtable->spline(bmp, points, color); }
# 173 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void floodfill (BITMAP *bmp, int x, int y, int color); extern __inline__ void floodfill (BITMAP *bmp, int x, int y, int color) { ; bmp->vtable->floodfill(bmp, x, y, color); }
# 182 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void polygon3d (BITMAP *bmp, int type, BITMAP *texture, int vc, V3D *vtx[]); extern __inline__ void polygon3d (BITMAP *bmp, int type, BITMAP *texture, int vc, V3D *vtx[]) { ; bmp->vtable->polygon3d(bmp, type, texture, vc, vtx); }
# 191 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void polygon3d_f (BITMAP *bmp, int type, BITMAP *texture, int vc, V3D_f *vtx[]); extern __inline__ void polygon3d_f (BITMAP *bmp, int type, BITMAP *texture, int vc, V3D_f *vtx[]) { ; bmp->vtable->polygon3d_f(bmp, type, texture, vc, vtx); }
# 200 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void triangle3d (BITMAP *bmp, int type, BITMAP *texture, V3D *v1, V3D *v2, V3D *v3); extern __inline__ void triangle3d (BITMAP *bmp, int type, BITMAP *texture, V3D *v1, V3D *v2, V3D *v3) { ; bmp->vtable->triangle3d(bmp, type, texture, v1, v2, v3); }
# 209 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void triangle3d_f (BITMAP *bmp, int type, BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3); extern __inline__ void triangle3d_f (BITMAP *bmp, int type, BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3) { ; bmp->vtable->triangle3d_f(bmp, type, texture, v1, v2, v3); }
# 218 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void quad3d (BITMAP *bmp, int type, BITMAP *texture, V3D *v1, V3D *v2, V3D *v3, V3D *v4); extern __inline__ void quad3d (BITMAP *bmp, int type, BITMAP *texture, V3D *v1, V3D *v2, V3D *v3, V3D *v4) { ; bmp->vtable->quad3d(bmp, type, texture, v1, v2, v3, v4); }
# 227 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void quad3d_f (BITMAP *bmp, int type, BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3, V3D_f *v4); extern __inline__ void quad3d_f (BITMAP *bmp, int type, BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3, V3D_f *v4) { ; bmp->vtable->quad3d_f(bmp, type, texture, v1, v2, v3, v4); }
# 238 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void draw_sprite (BITMAP *bmp, BITMAP *sprite, int x, int y); extern __inline__ void draw_sprite (BITMAP *bmp, BITMAP *sprite, int x, int y) { ; ; if (sprite->vtable->color_depth == 8) { bmp->vtable->draw_256_sprite(bmp, sprite, x, y); } else { ; bmp->vtable->draw_sprite(bmp, sprite, x, y); } }
# 252 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void draw_sprite_ex (BITMAP *bmp, BITMAP *sprite, int x, int y, int mode, int flip); extern __inline__ void draw_sprite_ex (BITMAP *bmp, BITMAP *sprite, int x, int y, int mode, int flip) { ; ; if (mode == 2) { ; bmp->vtable->draw_sprite_ex(bmp, sprite, x, y, mode, flip); } else { ; bmp->vtable->draw_sprite_ex(bmp, sprite, x, y, mode, flip); } }
# 272 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void draw_sprite_v_flip (BITMAP *bmp, BITMAP *sprite, int x, int y); extern __inline__ void draw_sprite_v_flip (BITMAP *bmp, BITMAP *sprite, int x, int y) { ; ; ; bmp->vtable->draw_sprite_v_flip(bmp, sprite, x, y); }







extern __inline__ void draw_sprite_h_flip (BITMAP *bmp, BITMAP *sprite, int x, int y); extern __inline__ void draw_sprite_h_flip (BITMAP *bmp, BITMAP *sprite, int x, int y) { ; ; ; bmp->vtable->draw_sprite_h_flip(bmp, sprite, x, y); }







extern __inline__ void draw_sprite_vh_flip (BITMAP *bmp, BITMAP *sprite, int x, int y); extern __inline__ void draw_sprite_vh_flip (BITMAP *bmp, BITMAP *sprite, int x, int y) { ; ; ; bmp->vtable->draw_sprite_vh_flip(bmp, sprite, x, y); }
# 297 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void draw_trans_sprite (BITMAP *bmp, BITMAP *sprite, int x, int y); extern __inline__ void draw_trans_sprite (BITMAP *bmp, BITMAP *sprite, int x, int y) { ; ; if (sprite->vtable->color_depth == 32) { ; bmp->vtable->draw_trans_rgba_sprite(bmp, sprite, x, y); } else { ; bmp->vtable->draw_trans_sprite(bmp, sprite, x, y); } }
# 315 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void draw_lit_sprite (BITMAP *bmp, BITMAP *sprite, int x, int y, int color); extern __inline__ void draw_lit_sprite (BITMAP *bmp, BITMAP *sprite, int x, int y, int color) { ; ; ; bmp->vtable->draw_lit_sprite(bmp, sprite, x, y, color); }
# 325 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void draw_gouraud_sprite (BITMAP *bmp, BITMAP *sprite, int x, int y, int c1, int c2, int c3, int c4); extern __inline__ void draw_gouraud_sprite (BITMAP *bmp, BITMAP *sprite, int x, int y, int c1, int c2, int c3, int c4) { ; ; ; bmp->vtable->draw_gouraud_sprite(bmp, sprite, x, y, c1, c2, c3, c4); }
# 335 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void draw_character_ex (BITMAP *bmp, BITMAP *sprite, int x, int y, int color, int bg); extern __inline__ void draw_character_ex (BITMAP *bmp, BITMAP *sprite, int x, int y, int color, int bg) { ; ; ; bmp->vtable->draw_character(bmp, sprite, x, y, color, bg); }
# 345 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void rotate_sprite (BITMAP *bmp, BITMAP *sprite, int x, int y, fixed angle); extern __inline__ void rotate_sprite (BITMAP *bmp, BITMAP *sprite, int x, int y, fixed angle) { ; ; bmp->vtable->pivot_scaled_sprite_flip(bmp, sprite, (x<<16) + (sprite->w * 0x10000) / 2, (y<<16) + (sprite->h * 0x10000) / 2, sprite->w << 15, sprite->h << 15, angle, 0x10000, 0); }
# 357 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void rotate_sprite_v_flip (BITMAP *bmp, BITMAP *sprite, int x, int y, fixed angle); extern __inline__ void rotate_sprite_v_flip (BITMAP *bmp, BITMAP *sprite, int x, int y, fixed angle) { ; ; bmp->vtable->pivot_scaled_sprite_flip(bmp, sprite, (x<<16) + (sprite->w * 0x10000) / 2, (y<<16) + (sprite->h * 0x10000) / 2, sprite->w << 15, sprite->h << 15, angle, 0x10000, -1); }
# 369 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void rotate_scaled_sprite (BITMAP *bmp, BITMAP *sprite, int x, int y, fixed angle, fixed scale); extern __inline__ void rotate_scaled_sprite (BITMAP *bmp, BITMAP *sprite, int x, int y, fixed angle, fixed scale) { ; ; bmp->vtable->pivot_scaled_sprite_flip(bmp, sprite, (x<<16) + (sprite->w * scale) / 2, (y<<16) + (sprite->h * scale) / 2, sprite->w << 15, sprite->h << 15, angle, scale, 0); }
# 381 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void rotate_scaled_sprite_v_flip (BITMAP *bmp, BITMAP *sprite, int x, int y, fixed angle, fixed scale); extern __inline__ void rotate_scaled_sprite_v_flip (BITMAP *bmp, BITMAP *sprite, int x, int y, fixed angle, fixed scale) { ; ; bmp->vtable->pivot_scaled_sprite_flip(bmp, sprite, (x<<16) + (sprite->w * scale) / 2, (y<<16) + (sprite->h * scale) / 2, sprite->w << 15, sprite->h << 15, angle, scale, -1); }
# 393 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void pivot_sprite (BITMAP *bmp, BITMAP *sprite, int x, int y, int cx, int cy, fixed angle); extern __inline__ void pivot_sprite (BITMAP *bmp, BITMAP *sprite, int x, int y, int cx, int cy, fixed angle) { ; ; bmp->vtable->pivot_scaled_sprite_flip(bmp, sprite, x<<16, y<<16, cx<<16, cy<<16, angle, 0x10000, 0); }
# 402 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void pivot_sprite_v_flip (BITMAP *bmp, BITMAP *sprite, int x, int y, int cx, int cy, fixed angle); extern __inline__ void pivot_sprite_v_flip (BITMAP *bmp, BITMAP *sprite, int x, int y, int cx, int cy, fixed angle) { ; ; bmp->vtable->pivot_scaled_sprite_flip(bmp, sprite, x<<16, y<<16, cx<<16, cy<<16, angle, 0x10000, -1); }
# 411 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void pivot_scaled_sprite (BITMAP *bmp, BITMAP *sprite, int x, int y, int cx, int cy, fixed angle, fixed scale); extern __inline__ void pivot_scaled_sprite (BITMAP *bmp, BITMAP *sprite, int x, int y, int cx, int cy, fixed angle, fixed scale) { ; ; bmp->vtable->pivot_scaled_sprite_flip(bmp, sprite, x<<16, y<<16, cx<<16, cy<<16, angle, scale, 0); }
# 420 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void pivot_scaled_sprite_v_flip (BITMAP *bmp, BITMAP *sprite, int x, int y, int cx, int cy, fixed angle, fixed scale); extern __inline__ void pivot_scaled_sprite_v_flip (BITMAP *bmp, BITMAP *sprite, int x, int y, int cx, int cy, fixed angle, fixed scale) { ; ; bmp->vtable->pivot_scaled_sprite_flip(bmp, sprite, x<<16, y<<16, cx<<16, cy<<16, angle, scale, -1); }
# 429 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void _putpixel (BITMAP *bmp, int x, int y, int color); extern __inline__ void _putpixel (BITMAP *bmp, int x, int y, int color) { uintptr_t addr; ; addr = bmp_write_line(bmp, y); (*((uint8_t *)(addr+x)) = (color)); bmp_unwrite_line(bmp); }
# 440 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ int _getpixel (BITMAP *bmp, int x, int y); extern __inline__ int _getpixel (BITMAP *bmp, int x, int y) { uintptr_t addr; int c; ; addr = bmp_read_line(bmp, y); c = (*((uint8_t *)(addr+x))); bmp_unwrite_line(bmp); return c; }
# 454 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void _putpixel15 (BITMAP *bmp, int x, int y, int color); extern __inline__ void _putpixel15 (BITMAP *bmp, int x, int y, int color) { uintptr_t addr; ; addr = bmp_write_line(bmp, y); (*((uint16_t *)(addr+x*sizeof(short))) = (color)); bmp_unwrite_line(bmp); }
# 465 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ int _getpixel15 (BITMAP *bmp, int x, int y); extern __inline__ int _getpixel15 (BITMAP *bmp, int x, int y) { uintptr_t addr; int c; ; addr = bmp_read_line(bmp, y); c = (*((uint16_t *)(addr+x*sizeof(short)))); bmp_unwrite_line(bmp); return c; }
# 479 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void _putpixel16 (BITMAP *bmp, int x, int y, int color); extern __inline__ void _putpixel16 (BITMAP *bmp, int x, int y, int color) { uintptr_t addr; ; addr = bmp_write_line(bmp, y); (*((uint16_t *)(addr+x*sizeof(short))) = (color)); bmp_unwrite_line(bmp); }
# 490 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ int _getpixel16 (BITMAP *bmp, int x, int y); extern __inline__ int _getpixel16 (BITMAP *bmp, int x, int y) { uintptr_t addr; int c; ; addr = bmp_read_line(bmp, y); c = (*((uint16_t *)(addr+x*sizeof(short)))); bmp_unwrite_line(bmp); return c; }
# 504 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void _putpixel24 (BITMAP *bmp, int x, int y, int color); extern __inline__ void _putpixel24 (BITMAP *bmp, int x, int y, int color) { uintptr_t addr; ; addr = bmp_write_line(bmp, y); bmp_write24(addr+x*3, color); bmp_unwrite_line(bmp); }
# 515 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ int _getpixel24 (BITMAP *bmp, int x, int y); extern __inline__ int _getpixel24 (BITMAP *bmp, int x, int y) { uintptr_t addr; int c; ; addr = bmp_read_line(bmp, y); c = bmp_read24(addr+x*3); bmp_unwrite_line(bmp); return c; }
# 529 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ void _putpixel32 (BITMAP *bmp, int x, int y, int color); extern __inline__ void _putpixel32 (BITMAP *bmp, int x, int y, int color) { uintptr_t addr; ; addr = bmp_write_line(bmp, y); (*((uint32_t *)(addr+x*sizeof(int32_t))) = (color)); bmp_unwrite_line(bmp); }
# 540 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/draw.inl"
extern __inline__ int _getpixel32 (BITMAP *bmp, int x, int y); extern __inline__ int _getpixel32 (BITMAP *bmp, int x, int y) { uintptr_t addr; int c; ; addr = bmp_read_line(bmp, y); c = (*((uint32_t *)(addr+x*sizeof(int32_t)))); bmp_unwrite_line(bmp); return c; }
# 88 "/home/kibi/allegro4.4-4.4.2/include/allegro/draw.h" 2
# 41 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/rle.h" 1
# 29 "/home/kibi/allegro4.4-4.4.2/include/allegro/rle.h"
typedef struct RLE_SPRITE
{
   int w, h;
   int color_depth;
   int size;
   signed char dat[];
} RLE_SPRITE;


RLE_SPRITE * get_rle_sprite (struct BITMAP *bitmap);
void destroy_rle_sprite (RLE_SPRITE *sprite);





# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/rle.inl" 1
# 29 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/rle.inl"
extern __inline__ void draw_rle_sprite (struct BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y); extern __inline__ void draw_rle_sprite (struct BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y) { ; ; ; bmp->vtable->draw_rle_sprite(bmp, sprite, x, y); }
# 39 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/rle.inl"
extern __inline__ void draw_trans_rle_sprite (struct BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y); extern __inline__ void draw_trans_rle_sprite (struct BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y) { ; ; if (sprite->color_depth == 32) { ; bmp->vtable->draw_trans_rgba_rle_sprite(bmp, sprite, x, y); } else { ; bmp->vtable->draw_trans_rle_sprite(bmp, sprite, x, y); } }
# 55 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/rle.inl"
extern __inline__ void draw_lit_rle_sprite (struct BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y, int color); extern __inline__ void draw_lit_rle_sprite (struct BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y, int color) { ; ; ; bmp->vtable->draw_lit_rle_sprite(bmp, sprite, x, y, color); }
# 46 "/home/kibi/allegro4.4-4.4.2/include/allegro/rle.h" 2
# 42 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/compiled.h" 1
# 28 "/home/kibi/allegro4.4-4.4.2/include/allegro/compiled.h"
struct BITMAP;
# 47 "/home/kibi/allegro4.4-4.4.2/include/allegro/compiled.h"
struct RLE_SPRITE;
typedef struct RLE_SPRITE COMPILED_SPRITE;



COMPILED_SPRITE * get_compiled_sprite (struct BITMAP *bitmap, int planar);
void destroy_compiled_sprite (COMPILED_SPRITE *sprite);
void draw_compiled_sprite (struct BITMAP *bmp, const COMPILED_SPRITE *sprite, int x, int y);
# 43 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/text.h" 1
# 28 "/home/kibi/allegro4.4-4.4.2/include/allegro/text.h"
struct BITMAP;

struct FONT_VTABLE;

struct FONT;

extern struct FONT * font;
extern int allegro_404_char;
void textout_ex (struct BITMAP *bmp, const struct FONT *f, const char *str, int x, int y, int color, int bg);
void textout_centre_ex (struct BITMAP *bmp, const struct FONT *f, const char *str, int x, int y, int color, int bg);
void textout_right_ex (struct BITMAP *bmp, const struct FONT *f, const char *str, int x, int y, int color, int bg);
void textout_justify_ex (struct BITMAP *bmp, const struct FONT *f, const char *str, int x1, int x2, int y, int diff, int color, int bg);
void textprintf_ex (struct BITMAP *bmp, const struct FONT *f, int x, int y, int color, int bg, const char *format, ...) __attribute__ ((format (printf, 7, 8)));
void textprintf_centre_ex (struct BITMAP *bmp, const struct FONT *f, int x, int y, int color, int bg, const char *format, ...) __attribute__ ((format (printf, 7, 8)));
void textprintf_right_ex (struct BITMAP *bmp, const struct FONT *f, int x, int y, int color, int bg, const char *format, ...) __attribute__ ((format (printf, 7, 8)));
void textprintf_justify_ex (struct BITMAP *bmp, const struct FONT *f, int x1, int x2, int y, int diff, int color, int bg, const char *format, ...) __attribute__ ((format (printf, 9, 10)));
int text_length (const struct FONT *f, const char *str);
int text_height (const struct FONT *f);
void destroy_font (struct FONT *f);
# 44 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/font.h" 1
# 28 "/home/kibi/allegro4.4-4.4.2/include/allegro/font.h"
typedef struct FONT_GLYPH
{
   short w, h;
   unsigned char dat[];
} FONT_GLYPH;


struct FONT_VTABLE;

typedef struct FONT
{
   void *data;
   int height;
   struct FONT_VTABLE *vtable;
} FONT;

int font_has_alpha (FONT *f);
void make_trans_font (FONT *f);

int is_trans_font (FONT *f);
int is_color_font (FONT *f);
int is_mono_font (FONT *f);
int is_compatible_font (FONT *f1, FONT *f2);

void register_font_file_type (const char *ext, FONT *(*load)(const char *filename, RGB *pal, void *param));
FONT * load_font (const char *filename, RGB *pal, void *param);

FONT * load_dat_font (const char *filename, RGB *pal, void *param);
FONT * load_bios_font (const char *filename, RGB *pal, void *param);
FONT * load_grx_font (const char *filename, RGB *pal, void *param);
FONT * load_grx_or_bios_font (const char *filename, RGB *pal, void *param);
FONT * load_bitmap_font (const char *fname, RGB *pal, void *param);
FONT * load_txt_font (const char *fname, RGB *pal, void *param);

FONT * grab_font_from_bitmap (BITMAP *bmp);

int get_font_ranges (FONT *f);
int get_font_range_begin (FONT *f, int range);
int get_font_range_end (FONT *f, int range);
FONT * extract_font_range (FONT *f, int begin, int end);
FONT * merge_fonts (FONT *f1, FONT *f2);
int transpose_font (FONT *f, int drange);
# 45 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2

# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/fli.h" 1
# 29 "/home/kibi/allegro4.4-4.4.2/include/allegro/fli.h"
struct BITMAP;






int play_fli (const char *filename, struct BITMAP *bmp, int loop, int (*callback) (void));
int play_memory_fli (void *fli_data, struct BITMAP *bmp, int loop, int (*callback) (void));

int open_fli (const char *filename);
int open_memory_fli (void *fli_data);
void close_fli (void);
int next_fli_frame (int loop);
void reset_fli_variables (void);

extern struct BITMAP * fli_bitmap;
extern PALETTE fli_palette;

extern int fli_bmp_dirty_from;
extern int fli_bmp_dirty_to;
extern int fli_pal_dirty_from;
extern int fli_pal_dirty_to;

extern int fli_frame;

extern volatile int fli_timer;
# 47 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/config.h" 1
# 48 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/gui.h" 1
# 28 "/home/kibi/allegro4.4-4.4.2/include/allegro/gui.h"
struct BITMAP;
struct DIALOG;

typedef int (*DIALOG_PROC) (int msg, struct DIALOG *d, int c);

typedef struct DIALOG
{
   DIALOG_PROC proc;
   int x, y, w, h;
   int fg, bg;
   int key;
   int flags;
   int d1, d2;
   void *dp, *dp2, *dp3;
} DIALOG;



typedef struct MENU
{
   char *text;
   int (*proc) (void);
   struct MENU *child;
   int flags;
   void *dp;
} MENU;



typedef struct DIALOG_PLAYER
{
   int obj;
   int res;
   int mouse_obj;
   int focus_obj;
   int joy_on;
   int click_wait;
   int mouse_ox, mouse_oy;
   int mouse_oz;
   int mouse_b;
   DIALOG *dialog;
} DIALOG_PLAYER;



typedef struct MENU_PLAYER
{
   MENU *menu;
   int bar;
   int size;
   int sel;
   int x, y, w, h;
   int (*proc)(void);
   BITMAP *saved;

   int mouse_button_was_pressed;
   int back_from_child;
   int timestamp;
   int mouse_sel;
   int redraw;
   int auto_open;
   int ret;

   DIALOG *dialog;

   struct MENU_PLAYER *parent;
   struct MENU_PLAYER *child;
} MENU_PLAYER;
# 150 "/home/kibi/allegro4.4-4.4.2/include/allegro/gui.h"
int d_yield_proc (int msg, DIALOG *d, int c);
int d_clear_proc (int msg, DIALOG *d, int c);
int d_box_proc (int msg, DIALOG *d, int c);
int d_shadow_box_proc (int msg, DIALOG *d, int c);
int d_bitmap_proc (int msg, DIALOG *d, int c);
int d_text_proc (int msg, DIALOG *d, int c);
int d_ctext_proc (int msg, DIALOG *d, int c);
int d_rtext_proc (int msg, DIALOG *d, int c);
int d_button_proc (int msg, DIALOG *d, int c);
int d_check_proc (int msg, DIALOG *d, int c);
int d_radio_proc (int msg, DIALOG *d, int c);
int d_icon_proc (int msg, DIALOG *d, int c);
int d_keyboard_proc (int msg, DIALOG *d, int c);
int d_edit_proc (int msg, DIALOG *d, int c);
int d_list_proc (int msg, DIALOG *d, int c);
int d_text_list_proc (int msg, DIALOG *d, int c);
int d_textbox_proc (int msg, DIALOG *d, int c);
int d_slider_proc (int msg, DIALOG *d, int c);
int d_menu_proc (int msg, DIALOG *d, int c);

extern DIALOG_PROC gui_shadow_box_proc;
extern DIALOG_PROC gui_ctext_proc;
extern DIALOG_PROC gui_button_proc;
extern DIALOG_PROC gui_edit_proc;
extern DIALOG_PROC gui_list_proc;
extern DIALOG_PROC gui_text_list_proc;

extern void (*gui_menu_draw_menu) (int x, int y, int w, int h);
extern void (*gui_menu_draw_menu_item) (MENU *m, int x, int y, int w, int h, int bar, int sel);

extern DIALOG * active_dialog;
extern MENU * active_menu;

extern int gui_mouse_focus;

extern int gui_fg_color;
extern int gui_mg_color;
extern int gui_bg_color;

extern int gui_font_baseline;

extern int (*gui_mouse_x) (void);
extern int (*gui_mouse_y) (void);
extern int (*gui_mouse_z) (void);
extern int (*gui_mouse_b) (void);

void gui_set_screen (BITMAP *bmp);
BITMAP * gui_get_screen (void);
int gui_textout_ex (struct BITMAP *bmp, const char *s, int x, int y, int color, int bg, int centre);
int gui_strlen (const char *s);
void position_dialog (DIALOG *dialog, int x, int y);
void centre_dialog (DIALOG *dialog);
void set_dialog_color (DIALOG *dialog, int fg, int bg);
int find_dialog_focus (DIALOG *dialog);
int offer_focus (DIALOG *dialog, int obj, int *focus_obj, int force);
int object_message (DIALOG *dialog, int msg, int c);
int dialog_message (DIALOG *dialog, int msg, int c, int *obj);
int broadcast_dialog_message (int msg, int c);
int do_dialog (DIALOG *dialog, int focus_obj);
int popup_dialog (DIALOG *dialog, int focus_obj);
DIALOG_PLAYER * init_dialog (DIALOG *dialog, int focus_obj);
int update_dialog (DIALOG_PLAYER *player);
int shutdown_dialog (DIALOG_PLAYER *player);
int do_menu (MENU *menu, int x, int y);
MENU_PLAYER * init_menu (MENU *menu, int x, int y);
int update_menu (MENU_PLAYER *player);
int shutdown_menu (MENU_PLAYER *player);
int alert (const char *s1, const char *s2, const char *s3, const char *b1, const char *b2, int c1, int c2);
int alert3 (const char *s1, const char *s2, const char *s3, const char *b1, const char *b2, const char *b3, int c1, int c2, int c3);
int file_select_ex (const char *message, char *path, const char *ext, int size, int w, int h);

int gfx_mode_select (int *card, int *w, int *h);
int gfx_mode_select_ex (int *card, int *w, int *h, int *color_depth);
int gfx_mode_select_filter (int *card, int *w, int *h, int *color_depth, int (*filter)(int, int, int, int));
# 49 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2

# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/sound.h" 1
# 23 "/home/kibi/allegro4.4-4.4.2/include/allegro/sound.h"
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/digi.h" 1
# 28 "/home/kibi/allegro4.4-4.4.2/include/allegro/digi.h"
struct PACKFILE;






typedef struct SAMPLE
{
   int bits;
   int stereo;
   int freq;
   int priority;
   unsigned long len;
   unsigned long loop_start;
   unsigned long loop_end;
   unsigned long param;
   void *data;
} SAMPLE;





typedef struct DIGI_DRIVER
{
   int id;
   const char *name;
   const char *desc;
   const char *ascii_name;
   int voices;
   int basevoice;
   int max_voices;
   int def_voices;


   int (*detect) (int input);
   int (*init) (int input, int voices);
   void (*exit) (int input);
   int (*set_mixer_volume) (int volume);
   int (*get_mixer_volume) (void);


   void * (*lock_voice) (int voice, int start, int end);
   void (*unlock_voice) (int voice);
   int (*buffer_size) (void);


   void (*init_voice) (int voice, const SAMPLE *sample);
   void (*release_voice) (int voice);
   void (*start_voice) (int voice);
   void (*stop_voice) (int voice);
   void (*loop_voice) (int voice, int playmode);


   int (*get_position) (int voice);
   void (*set_position) (int voice, int position);


   int (*get_volume) (int voice);
   void (*set_volume) (int voice, int volume);
   void (*ramp_volume) (int voice, int tyme, int endvol);
   void (*stop_volume_ramp) (int voice);


   int (*get_frequency) (int voice);
   void (*set_frequency) (int voice, int frequency);
   void (*sweep_frequency) (int voice, int tyme, int endfreq);
   void (*stop_frequency_sweep) (int voice);


   int (*get_pan) (int voice);
   void (*set_pan) (int voice, int pan);
   void (*sweep_pan) (int voice, int tyme, int endpan);
   void (*stop_pan_sweep) (int voice);


   void (*set_echo) (int voice, int strength, int delay);
   void (*set_tremolo) (int voice, int rate, int depth);
   void (*set_vibrato) (int voice, int rate, int depth);


   int rec_cap_bits;
   int rec_cap_stereo;
   int (*rec_cap_rate) (int bits, int stereo);
   int (*rec_cap_parm) (int rate, int bits, int stereo);
   int (*rec_source) (int source);
   int (*rec_start) (int rate, int bits, int stereo);
   void (*rec_stop) (void);
   int (*rec_read) (void *buf);
} DIGI_DRIVER;

extern _DRIVER_INFO _digi_driver_list[];
# 131 "/home/kibi/allegro4.4-4.4.2/include/allegro/digi.h"
extern DIGI_DRIVER * digi_driver;

extern DIGI_DRIVER * digi_input_driver;

extern int digi_card;

extern int digi_input_card;

int detect_digi_driver (int driver_id);


SAMPLE * load_sample (const char *filename);
SAMPLE * load_wav (const char *filename);
SAMPLE * load_wav_pf (struct PACKFILE *f);
SAMPLE * load_voc (const char *filename);
SAMPLE * load_voc_pf (struct PACKFILE *f);
int save_sample (const char *filename, SAMPLE *spl);
SAMPLE * create_sample (int bits, int stereo, int freq, int len);
void destroy_sample (SAMPLE *spl);

int play_sample (const SAMPLE *spl, int vol, int pan, int freq, int loop);
void stop_sample (const SAMPLE *spl);
void adjust_sample (const SAMPLE *spl, int vol, int pan, int freq, int loop);

int allocate_voice (const SAMPLE *spl);
void deallocate_voice (int voice);
void reallocate_voice (int voice, const SAMPLE *spl);
void release_voice (int voice);
void voice_start (int voice);
void voice_stop (int voice);
void voice_set_priority (int voice, int priority);
SAMPLE * voice_check (int voice);







void voice_set_playmode (int voice, int playmode);

int voice_get_position (int voice);
void voice_set_position (int voice, int position);

int voice_get_volume (int voice);
void voice_set_volume (int voice, int volume);
void voice_ramp_volume (int voice, int tyme, int endvol);
void voice_stop_volumeramp (int voice);

int voice_get_frequency (int voice);
void voice_set_frequency (int voice, int frequency);
void voice_sweep_frequency (int voice, int tyme, int endfreq);
void voice_stop_frequency_sweep (int voice);

int voice_get_pan (int voice);
void voice_set_pan (int voice, int pan);
void voice_sweep_pan (int voice, int tyme, int endpan);
void voice_stop_pan_sweep (int voice);

void voice_set_echo (int voice, int strength, int delay);
void voice_set_tremolo (int voice, int rate, int depth);
void voice_set_vibrato (int voice, int rate, int depth);





int get_sound_input_cap_bits (void);
int get_sound_input_cap_stereo (void);
int get_sound_input_cap_rate (int bits, int stereo);
int get_sound_input_cap_parm (int rate, int bits, int stereo);
int set_sound_input_source (int source);
int start_sound_input (int rate, int bits, int stereo);
void stop_sound_input (void);
int read_sound_input (void *buffer);

extern void (*digi_recorder) (void);

void lock_sample (struct SAMPLE *spl);

void register_sample_file_type (const char *ext, struct SAMPLE * (*load) (const char *filename), int (*save) (const char *filename, struct SAMPLE *spl));
# 24 "/home/kibi/allegro4.4-4.4.2/include/allegro/sound.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/stream.h" 1
# 28 "/home/kibi/allegro4.4-4.4.2/include/allegro/stream.h"
struct SAMPLE;

typedef struct AUDIOSTREAM
{
   int voice;
   struct SAMPLE *samp;
   int len;
   int bufcount;
   int bufnum;
   int active;
   void *locked;
} AUDIOSTREAM;

AUDIOSTREAM * play_audio_stream (int len, int bits, int stereo, int freq, int vol, int pan);
void stop_audio_stream (AUDIOSTREAM *stream);
void * get_audio_stream_buffer (AUDIOSTREAM *stream);
void free_audio_stream_buffer (AUDIOSTREAM *stream);
# 25 "/home/kibi/allegro4.4-4.4.2/include/allegro/sound.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/midi.h" 1
# 33 "/home/kibi/allegro4.4-4.4.2/include/allegro/midi.h"
typedef struct MIDI
{
   int divisions;
   struct {
      unsigned char *data;
      int len;
   } track[32];
} MIDI;







typedef struct MIDI_DRIVER
{
   int id;
   const char *name;
   const char *desc;
   const char *ascii_name;
   int voices;
   int basevoice;
   int max_voices;
   int def_voices;
   int xmin, xmax;


   int (*detect) (int input);
   int (*init) (int input, int voices);
   void (*exit) (int input);
   int (*set_mixer_volume) (int volume);
   int (*get_mixer_volume) (void);


   void (*raw_midi) (int data);


   int (*load_patches) (const char *patches, const char *drums);
   void (*adjust_patches) (const char *patches, const char *drums);


   void (*key_on) (int inst, int note, int bend, int vol, int pan);
   void (*key_off) (int voice);
   void (*set_volume) (int voice, int vol);
   void (*set_pitch) (int voice, int note, int bend);
   void (*set_pan) (int voice, int pan);
   void (*set_vibrato) (int voice, int amount);
} MIDI_DRIVER;


extern MIDI_DRIVER midi_digmid;

extern _DRIVER_INFO _midi_driver_list[];
# 102 "/home/kibi/allegro4.4-4.4.2/include/allegro/midi.h"
extern MIDI_DRIVER * midi_driver;

extern MIDI_DRIVER * midi_input_driver;

extern int midi_card;

extern int midi_input_card;

extern volatile long midi_pos;
extern volatile long midi_time;

extern long midi_loop_start;
extern long midi_loop_end;

int detect_midi_driver (int driver_id);

MIDI * load_midi (const char *filename);
void destroy_midi (MIDI *midi);
int play_midi (MIDI *midi, int loop);
int play_looped_midi (MIDI *midi, int loop_start, int loop_end);
void stop_midi (void);
void midi_pause (void);
void midi_resume (void);
int midi_seek (int target);
int get_midi_length (MIDI *midi);
void midi_out (unsigned char *data, int length);
int load_midi_patches (void);

extern void (*midi_msg_callback) (int msg, int byte1, int byte2);
extern void (*midi_meta_callback) (int type, const unsigned char *data, int length);
extern void (*midi_sysex_callback) (const unsigned char *data, int length);

extern void (*midi_recorder) (unsigned char data);

void lock_midi (struct MIDI *midi);
# 26 "/home/kibi/allegro4.4-4.4.2/include/allegro/sound.h" 2





void reserve_voices (int digi_voices, int midi_voices);
void set_volume_per_voice (int scale);

int install_sound (int digi, int midi, const char *cfg_path);
void remove_sound (void);

int install_sound_input (int digi, int midi);
void remove_sound_input (void);

void set_volume (int digi_volume, int midi_volume);
void set_hardware_volume (int digi_volume, int midi_volume);

void get_volume (int *digi_volume, int *midi_volume);
void get_hardware_volume (int *digi_volume, int *midi_volume);

void set_mixer_quality (int quality);
int get_mixer_quality (void);
int get_mixer_frequency (void);
int get_mixer_bits (void);
int get_mixer_channels (void);
int get_mixer_voices (void);
int get_mixer_buffer_length (void);
# 51 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2

# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/file.h" 1
# 28 "/home/kibi/allegro4.4-4.4.2/include/allegro/file.h"
char * fix_filename_case (char *path);
char * fix_filename_slashes (char *path);
char * canonicalize_filename (char *dest, const char *filename, int size);
char * make_absolute_filename (char *dest, const char *path, const char *filename, int size);
char * make_relative_filename (char *dest, const char *path, const char *filename, int size);
int is_relative_filename (const char *filename);
char * replace_filename (char *dest, const char *path, const char *filename, int size);
char * replace_extension (char *dest, const char *filename, const char *ext, int size);
char * append_filename (char *dest, const char *path, const char *filename, int size);
char * get_filename (const char *path);
char * get_extension (const char *filename);
void put_backslash (char *filename);
int file_exists (const char *filename, int attrib, int *aret);
int exists (const char *filename);
uint64_t file_size_ex (const char *filename);
time_t file_time (const char *filename);
int delete_file (const char *filename);
int for_each_file_ex (const char *name, int in_attrib, int out_attrib, int (*callback) (const char *filename, int attrib, void *param), void *param);
int set_allegro_resource_path (int priority, const char *path);
int find_allegro_resource (char *dest, const char *resource, const char *ext, const char *datafile, const char *objectname, const char *envvar, const char *subdir, int size);

struct al_ffblk
{
   int attrib;
   time_t time;
   long size;
   char name[512];
   void *ff_data;
};

uint64_t al_ffblk_get_size (struct al_ffblk *info);

int al_findfirst (const char *pattern, struct al_ffblk *info, int attrib);
int al_findnext (struct al_ffblk *info);
void al_findclose (struct al_ffblk *info);
# 88 "/home/kibi/allegro4.4-4.4.2/include/allegro/file.h"
typedef struct PACKFILE_VTABLE PACKFILE_VTABLE;
typedef struct PACKFILE PACKFILE;

struct LZSS_PACK_DATA;
struct LZSS_UNPACK_DATA;


struct _al_normal_packfile_details
{
   int hndl;
   int flags;
   unsigned char *buf_pos;
   int buf_size;
   long todo;
   struct PACKFILE *parent;
   struct LZSS_PACK_DATA *pack_data;
   struct LZSS_UNPACK_DATA *unpack_data;
   char *filename;
   char *passdata;
   char *passpos;
   unsigned char buf[4096];
};


struct PACKFILE
{
   const PACKFILE_VTABLE *vtable;
   void *userdata;
   int is_normal_packfile;






   struct _al_normal_packfile_details normal;
};


struct PACKFILE_VTABLE
{
   int (*pf_fclose) (void *userdata);
   int (*pf_getc) (void *userdata);
   int (*pf_ungetc) (int c, void *userdata);
   long (*pf_fread) (void *p, long n, void *userdata);
   int (*pf_putc) (int c, void *userdata);
   long (*pf_fwrite) (const void *p, long n, void *userdata);
   int (*pf_fseek) (void *userdata, int offset);
   int (*pf_feof) (void *userdata);
   int (*pf_ferror) (void *userdata);
};




void set_filename_encoding (int encoding);
int get_filename_encoding (void);

void packfile_password (const char *password);
PACKFILE * pack_fopen (const char *filename, const char *mode);
PACKFILE * pack_fopen_vtable (const PACKFILE_VTABLE *vtable, void *userdata);
int pack_fclose (PACKFILE *f);
int pack_fseek (PACKFILE *f, int offset);
PACKFILE * pack_fopen_chunk (PACKFILE *f, int pack);
PACKFILE * pack_fclose_chunk (PACKFILE *f);
int pack_getc (PACKFILE *f);
int pack_putc (int c, PACKFILE *f);
int pack_feof (PACKFILE *f);
int pack_ferror (PACKFILE *f);
int pack_igetw (PACKFILE *f);
long pack_igetl (PACKFILE *f);
int pack_iputw (int w, PACKFILE *f);
long pack_iputl (long l, PACKFILE *f);
int pack_mgetw (PACKFILE *f);
long pack_mgetl (PACKFILE *f);
int pack_mputw (int w, PACKFILE *f);
long pack_mputl (long l, PACKFILE *f);
long pack_fread (void *p, long n, PACKFILE *f);
long pack_fwrite (const void *p, long n, PACKFILE *f);
int pack_ungetc (int c, PACKFILE *f);
char * pack_fgets (char *p, int max, PACKFILE *f);
int pack_fputs (const char *p, PACKFILE *f);
void * pack_get_userdata (PACKFILE *f);
# 53 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/lzss.h" 1
# 28 "/home/kibi/allegro4.4-4.4.2/include/allegro/lzss.h"
typedef struct LZSS_PACK_DATA LZSS_PACK_DATA;
typedef struct LZSS_UNPACK_DATA LZSS_UNPACK_DATA;


LZSS_PACK_DATA * create_lzss_pack_data (void);
void free_lzss_pack_data (LZSS_PACK_DATA *dat);
int lzss_write (PACKFILE *file, LZSS_PACK_DATA *dat, int size, unsigned char *buf, int last);

LZSS_UNPACK_DATA * create_lzss_unpack_data (void);
void free_lzss_unpack_data (LZSS_UNPACK_DATA *dat);
int lzss_read (PACKFILE *file, LZSS_UNPACK_DATA *dat, int s, unsigned char *buf);
# 54 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/datafile.h" 1
# 28 "/home/kibi/allegro4.4-4.4.2/include/allegro/datafile.h"
struct BITMAP;
struct PACKFILE;
struct RGB;
# 52 "/home/kibi/allegro4.4-4.4.2/include/allegro/datafile.h"
typedef struct DATAFILE_PROPERTY
{
   char *dat;
   int type;
} DATAFILE_PROPERTY;


typedef struct DATAFILE
{
   void *dat;
   int type;
   long size;
   DATAFILE_PROPERTY *prop;
} DATAFILE;


typedef struct DATAFILE_INDEX
{
   char *filename;
   long *offset;
} DATAFILE_INDEX;


DATAFILE * load_datafile (const char *filename);
DATAFILE * load_datafile_callback (const char *filename, void (*callback) (DATAFILE *));
DATAFILE_INDEX * create_datafile_index (const char *filename);
void unload_datafile (DATAFILE *dat);
void destroy_datafile_index (DATAFILE_INDEX *index);

DATAFILE * load_datafile_object (const char *filename, const char *objectname);
DATAFILE * load_datafile_object_indexed (const DATAFILE_INDEX *index, int item);
void unload_datafile_object (DATAFILE *dat);

DATAFILE * find_datafile_object (const DATAFILE *dat, const char *objectname);
const char * get_datafile_property (const DATAFILE *dat, int type);
void register_datafile_object (int id_, void * (*load) (struct PACKFILE *f, long size), void (*destroy) (void *data));

void fixup_datafile (DATAFILE *data);

struct BITMAP * load_bitmap (const char *filename, struct RGB *pal);
struct BITMAP * load_bmp (const char *filename, struct RGB *pal);
struct BITMAP * load_bmp_pf (PACKFILE *f, struct RGB *pal);
struct BITMAP * load_lbm (const char *filename, struct RGB *pal);
struct BITMAP * load_pcx (const char *filename, struct RGB *pal);
struct BITMAP * load_pcx_pf (PACKFILE *f, struct RGB *pal);
struct BITMAP * load_tga (const char *filename, struct RGB *pal);
struct BITMAP * load_tga_pf (PACKFILE *f, struct RGB *pal);

int save_bitmap (const char *filename, struct BITMAP *bmp, const struct RGB *pal);
int save_bmp (const char *filename, struct BITMAP *bmp, const struct RGB *pal);
int save_bmp_pf (PACKFILE *f, struct BITMAP *bmp, const struct RGB *pal);
int save_pcx (const char *filename, struct BITMAP *bmp, const struct RGB *pal);
int save_pcx_pf (PACKFILE *f, struct BITMAP *bmp, const struct RGB *pal);
int save_tga (const char *filename, struct BITMAP *bmp, const struct RGB *pal);
int save_tga_pf (PACKFILE *f, struct BITMAP *bmp, const struct RGB *pal);

void register_bitmap_file_type (const char *ext, struct BITMAP * (*load) (const char *filename, struct RGB *pal), int (*save) (const char *filename, struct BITMAP *bmp, const struct RGB *pal));
# 55 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2

# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/fixed.h" 1
# 57 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/fmaths.h" 1
# 29 "/home/kibi/allegro4.4-4.4.2/include/allegro/fmaths.h"
fixed fixsqrt (fixed x);
fixed fixhypot (fixed x, fixed y);
fixed fixatan (fixed x);
fixed fixatan2 (fixed y, fixed x);

extern fixed _cos_tbl[];
extern fixed _tan_tbl[];
extern fixed _acos_tbl[];





# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/fmaths.inl" 1
# 23 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/fmaths.inl"
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/asm.inl" 1
# 24 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/fmaths.inl" 2
# 32 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/fmaths.inl"
extern __inline__ fixed ftofix (double x); extern __inline__ fixed ftofix (double x) { if (x > 32767.0) { *allegro_errno = 34; return 0x7FFFFFFF; } if (x < -32767.0) { *allegro_errno = 34; return -0x7FFFFFFF; } return (fixed)(x * 65536.0 + (x < 0 ? -0.5 : 0.5)); }
# 48 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/fmaths.inl"
extern __inline__ double fixtof (fixed x); extern __inline__ double fixtof (fixed x) { return (double)x / 65536.0; }
# 58 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/fmaths.inl"
extern __inline__ fixed fixadd (fixed x, fixed y); extern __inline__ fixed fixadd (fixed x, fixed y) { fixed result = x + y; if (result >= 0) { if ((x < 0) && (y < 0)) { *allegro_errno = 34; return -0x7FFFFFFF; } else return result; } else { if ((x > 0) && (y > 0)) { *allegro_errno = 34; return 0x7FFFFFFF; } else return result; } }
# 81 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/fmaths.inl"
extern __inline__ fixed fixsub (fixed x, fixed y); extern __inline__ fixed fixsub (fixed x, fixed y) { fixed result = x - y; if (result >= 0) { if ((x < 0) && (y > 0)) { *allegro_errno = 34; return -0x7FFFFFFF; } else return result; } else { if ((x > 0) && (y < 0)) { *allegro_errno = 34; return 0x7FFFFFFF; } else return result; } }
# 125 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/fmaths.inl"
   extern __inline__ fixed fixmul (fixed x, fixed y); extern __inline__ fixed fixmul (fixed x, fixed y) { long long lx = x; long long ly = y; long long lres = (lx*ly); if (lres > 0x7FFFFFFF0000LL) { *allegro_errno = 34; return 0x7FFFFFFF; } else if (lres < -0x7FFFFFFF0000LL) { *allegro_errno = 34; return 0x80000000; } else { int res = lres >> 16; return res; } }
# 147 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/fmaths.inl"
extern __inline__ fixed fixdiv (fixed x, fixed y); extern __inline__ fixed fixdiv (fixed x, fixed y) { if (y == 0) { *allegro_errno = 34; return (x < 0) ? -0x7FFFFFFF : 0x7FFFFFFF; } else return ftofix(fixtof(x) / fixtof(y)); }
# 158 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/fmaths.inl"
extern __inline__ int fixfloor (fixed x); extern __inline__ int fixfloor (fixed x) { if (x >= 0) return (x >> 16); else return ~((~x) >> 16); }
# 168 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/fmaths.inl"
extern __inline__ int fixceil (fixed x); extern __inline__ int fixceil (fixed x) { if (x > 0x7FFF0000) { *allegro_errno = 34; return 0x7FFF; } return fixfloor(x + 0xFFFF); }
# 181 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/fmaths.inl"
extern __inline__ fixed itofix (int x); extern __inline__ fixed itofix (int x) { return x << 16; }





extern __inline__ int fixtoi (fixed x); extern __inline__ int fixtoi (fixed x) { return fixfloor(x) + ((x & 0x8000) >> 15); }





extern __inline__ fixed fixcos (fixed x); extern __inline__ fixed fixcos (fixed x) { return _cos_tbl[((x + 0x4000) >> 15) & 0x1FF]; }





extern __inline__ fixed fixsin (fixed x); extern __inline__ fixed fixsin (fixed x) { return _cos_tbl[((x - 0x400000 + 0x4000) >> 15) & 0x1FF]; }





extern __inline__ fixed fixtan (fixed x); extern __inline__ fixed fixtan (fixed x) { return _tan_tbl[((x + 0x4000) >> 15) & 0xFF]; }





extern __inline__ fixed fixacos (fixed x); extern __inline__ fixed fixacos (fixed x) { if ((x < -65536) || (x > 65536)) { *allegro_errno = 33; return 0; } return _acos_tbl[(x+65536+127)>>8]; }
# 222 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/fmaths.inl"
extern __inline__ fixed fixasin (fixed x); extern __inline__ fixed fixasin (fixed x) { if ((x < -65536) || (x > 65536)) { *allegro_errno = 33; return 0; } return 0x00400000 - _acos_tbl[(x+65536+127)>>8]; }
# 43 "/home/kibi/allegro4.4-4.4.2/include/allegro/fmaths.h" 2
# 58 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/matrix.h" 1
# 24 "/home/kibi/allegro4.4-4.4.2/include/allegro/matrix.h"
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/fmaths.h" 1
# 25 "/home/kibi/allegro4.4-4.4.2/include/allegro/matrix.h" 2





typedef struct MATRIX
{
   fixed v[3][3];
   fixed t[3];
} MATRIX;


typedef struct MATRIX_f
{
   float v[3][3];
   float t[3];
} MATRIX_f;


extern MATRIX identity_matrix;
extern MATRIX_f identity_matrix_f;

void get_translation_matrix (MATRIX *m, fixed x, fixed y, fixed z);
void get_translation_matrix_f (MATRIX_f *m, float x, float y, float z);

void get_scaling_matrix (MATRIX *m, fixed x, fixed y, fixed z);
void get_scaling_matrix_f (MATRIX_f *m, float x, float y, float z);

void get_x_rotate_matrix (MATRIX *m, fixed r);
void get_x_rotate_matrix_f (MATRIX_f *m, float r);

void get_y_rotate_matrix (MATRIX *m, fixed r);
void get_y_rotate_matrix_f (MATRIX_f *m, float r);

void get_z_rotate_matrix (MATRIX *m, fixed r);
void get_z_rotate_matrix_f (MATRIX_f *m, float r);

void get_rotation_matrix (MATRIX *m, fixed x, fixed y, fixed z);
void get_rotation_matrix_f (MATRIX_f *m, float x, float y, float z);

void get_align_matrix (MATRIX *m, fixed xfront, fixed yfront, fixed zfront, fixed xup, fixed yup, fixed zup);
void get_align_matrix_f (MATRIX_f *m, float xfront, float yfront, float zfront, float xup, float yup, float zup);

void get_vector_rotation_matrix (MATRIX *m, fixed x, fixed y, fixed z, fixed a);
void get_vector_rotation_matrix_f (MATRIX_f *m, float x, float y, float z, float a);

void get_transformation_matrix (MATRIX *m, fixed scale, fixed xrot, fixed yrot, fixed zrot, fixed x, fixed y, fixed z);
void get_transformation_matrix_f (MATRIX_f *m, float scale, float xrot, float yrot, float zrot, float x, float y, float z);

void get_camera_matrix (MATRIX *m, fixed x, fixed y, fixed z, fixed xfront, fixed yfront, fixed zfront, fixed xup, fixed yup, fixed zup, fixed fov, fixed aspect);
void get_camera_matrix_f (MATRIX_f *m, float x, float y, float z, float xfront, float yfront, float zfront, float xup, float yup, float zup, float fov, float aspect);

void qtranslate_matrix (MATRIX *m, fixed x, fixed y, fixed z);
void qtranslate_matrix_f (MATRIX_f *m, float x, float y, float z);

void qscale_matrix (MATRIX *m, fixed scale);
void qscale_matrix_f (MATRIX_f *m, float scale);

void matrix_mul (const MATRIX *m1, const MATRIX *m2, MATRIX *out);
void matrix_mul_f (const MATRIX_f *m1, const MATRIX_f *m2, MATRIX_f *out);

void apply_matrix_f (const MATRIX_f *m, float x, float y, float z, float *xout, float *yout, float *zout);





# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/matrix.inl" 1
# 32 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/matrix.inl"
extern __inline__ void apply_matrix (MATRIX *m, fixed x, fixed y, fixed z, fixed *xout, fixed *yout, fixed *zout); extern __inline__ void apply_matrix (MATRIX *m, fixed x, fixed y, fixed z, fixed *xout, fixed *yout, fixed *zout) { *xout = (fixmul(x, m->v[0][0]) + fixmul(y, m->v[0][1]) + fixmul(z, m->v[0][2]) + m->t[0]); *yout = (fixmul(x, m->v[1][0]) + fixmul(y, m->v[1][1]) + fixmul(z, m->v[1][2]) + m->t[1]); *zout = (fixmul(x, m->v[2][0]) + fixmul(y, m->v[2][1]) + fixmul(z, m->v[2][2]) + m->t[2]); }
# 93 "/home/kibi/allegro4.4-4.4.2/include/allegro/matrix.h" 2
# 59 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/quat.h" 1
# 28 "/home/kibi/allegro4.4-4.4.2/include/allegro/quat.h"
typedef struct QUAT
{
     float w, x, y, z;
} QUAT;


extern QUAT identity_quat;

void quat_mul (const QUAT *p, const QUAT *q, QUAT *out);
void get_x_rotate_quat (QUAT *q, float r);
void get_y_rotate_quat (QUAT *q, float r);
void get_z_rotate_quat (QUAT *q, float r);
void get_rotation_quat (QUAT *q, float x, float y, float z);
void get_vector_rotation_quat (QUAT *q, float x, float y, float z, float a);

void apply_quat (const QUAT *q, float x, float y, float z, float *xout, float *yout, float *zout);
void quat_slerp (const QUAT *from, const QUAT *to, float t, QUAT *out, int how);
# 60 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2

# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/3d.h" 1
# 62 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/3dmaths.h" 1
# 29 "/home/kibi/allegro4.4-4.4.2/include/allegro/3dmaths.h"
struct QUAT;
struct MATRIX_f;

fixed vector_length (fixed x, fixed y, fixed z);
float vector_length_f (float x, float y, float z);

void normalize_vector (fixed *x, fixed *y, fixed *z);
void normalize_vector_f (float *x, float *y, float *z);

void cross_product (fixed x1, fixed y_1, fixed z1, fixed x2, fixed y2, fixed z2, fixed *xout, fixed *yout, fixed *zout);
void cross_product_f (float x1, float y_1, float z1, float x2, float y2, float z2, float *xout, float *yout, float *zout);

extern fixed _persp_xscale;
extern fixed _persp_yscale;
extern fixed _persp_xoffset;
extern fixed _persp_yoffset;

extern float _persp_xscale_f;
extern float _persp_yscale_f;
extern float _persp_xoffset_f;
extern float _persp_yoffset_f;

void set_projection_viewport (int x, int y, int w, int h);

void quat_to_matrix (const struct QUAT *q, struct MATRIX_f *m);
void matrix_to_quat (const struct MATRIX_f *m, struct QUAT *q);





# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/3dmaths.inl" 1
# 27 "/home/kibi/allegro4.4-4.4.2/include/allegro/inline/3dmaths.inl"
extern __inline__ fixed dot_product (fixed x1, fixed y_1, fixed z1, fixed x2, fixed y2, fixed z2); extern __inline__ fixed dot_product (fixed x1, fixed y_1, fixed z1, fixed x2, fixed y2, fixed z2) { return fixmul(x1, x2) + fixmul(y_1, y2) + fixmul(z1, z2); }





extern __inline__ float dot_product_f (float x1, float y_1, float z1, float x2, float y2, float z2); extern __inline__ float dot_product_f (float x1, float y_1, float z1, float x2, float y2, float z2) { return (x1 * x2) + (y_1 * y2) + (z1 * z2); }





extern __inline__ void persp_project (fixed x, fixed y, fixed z, fixed *xout, fixed *yout); extern __inline__ void persp_project (fixed x, fixed y, fixed z, fixed *xout, fixed *yout) { *xout = fixmul(fixdiv(x, z), _persp_xscale) + _persp_xoffset; *yout = fixmul(fixdiv(y, z), _persp_yscale) + _persp_yoffset; }






extern __inline__ void persp_project_f (float x, float y, float z, float *xout, float *yout); extern __inline__ void persp_project_f (float x, float y, float z, float *xout, float *yout) { float z1 = 1.0f / z; *xout = ((x * z1) * _persp_xscale_f) + _persp_xoffset_f; *yout = ((y * z1) * _persp_yscale_f) + _persp_yoffset_f; }
# 61 "/home/kibi/allegro4.4-4.4.2/include/allegro/3dmaths.h" 2
# 63 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2



# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/alcompat.h" 1
# 113 "/home/kibi/allegro4.4-4.4.2/include/allegro/alcompat.h"
__attribute__ ((deprecated)) int initialise_joystick (void);
# 141 "/home/kibi/allegro4.4-4.4.2/include/allegro/alcompat.h"
extern __inline__ __attribute__ ((deprecated)) int file_select (const char *message, char *path, const char *ext); extern __inline__ __attribute__ ((deprecated)) int file_select (const char *message, char *path, const char *ext) { return file_select_ex(message, path, ext, 1024, -1, -1); }






__attribute__ ((deprecated)) int for_each_file (const char *name, int attrib, void (*callback) (const char *filename, int attrib, int param), int param);

__attribute__ ((deprecated)) long file_size (const char *filename);



extern int _textmode;
__attribute__ ((deprecated)) int text_mode (int mode);

extern __inline__ __attribute__ ((deprecated)) void textout (struct BITMAP *bmp, const FONT *f, const char *str, int x, int y, int color); extern __inline__ __attribute__ ((deprecated)) void textout (struct BITMAP *bmp, const FONT *f, const char *str, int x, int y, int color) { textout_ex(bmp, f, str, x, y, color, _textmode); }




extern __inline__ __attribute__ ((deprecated)) void textout_centre (struct BITMAP *bmp, const FONT *f, const char *str, int x, int y, int color); extern __inline__ __attribute__ ((deprecated)) void textout_centre (struct BITMAP *bmp, const FONT *f, const char *str, int x, int y, int color) { textout_centre_ex(bmp, f, str, x, y, color, _textmode); }




extern __inline__ __attribute__ ((deprecated)) void textout_right (struct BITMAP *bmp, const FONT *f, const char *str, int x, int y, int color); extern __inline__ __attribute__ ((deprecated)) void textout_right (struct BITMAP *bmp, const FONT *f, const char *str, int x, int y, int color) { textout_right_ex(bmp, f, str, x, y, color, _textmode); }




extern __inline__ __attribute__ ((deprecated)) void textout_justify (struct BITMAP *bmp, const FONT *f, const char *str, int x1, int x2, int y, int diff, int color); extern __inline__ __attribute__ ((deprecated)) void textout_justify (struct BITMAP *bmp, const FONT *f, const char *str, int x1, int x2, int y, int diff, int color) { textout_justify_ex(bmp, f, str, x1, x2, y, diff, color, _textmode); }




__attribute__ ((deprecated)) void textprintf (struct BITMAP *bmp, const FONT *f, int x, int y, int color, const char *format, ...) __attribute__ ((format (printf, 6, 7)));
__attribute__ ((deprecated)) void textprintf_centre (struct BITMAP *bmp, const FONT *f, int x, int y, int color, const char *format, ...) __attribute__ ((format (printf, 6, 7)));
__attribute__ ((deprecated)) void textprintf_right (struct BITMAP *bmp, const FONT *f, int x, int y, int color, const char *format, ...) __attribute__ ((format (printf, 6, 7)));
__attribute__ ((deprecated)) void textprintf_justify (struct BITMAP *bmp, const FONT *f, int x1, int x2, int y, int diff, int color, const char *format, ...) __attribute__ ((format (printf, 8, 9)));

extern __inline__ __attribute__ ((deprecated)) void draw_character (BITMAP *bmp, BITMAP *sprite, int x, int y, int color); extern __inline__ __attribute__ ((deprecated)) void draw_character (BITMAP *bmp, BITMAP *sprite, int x, int y, int color) { draw_character_ex(bmp, sprite, x, y, color, _textmode); }




extern __inline__ __attribute__ ((deprecated)) int gui_textout (struct BITMAP *bmp, const char *s, int x, int y, int color, int centre); extern __inline__ __attribute__ ((deprecated)) int gui_textout (struct BITMAP *bmp, const char *s, int x, int y, int color, int centre) { return gui_textout_ex(bmp, s, x, y, color, _textmode, centre); }






extern __inline__ __attribute__ ((deprecated)) int set_window_close_button (int enable); extern __inline__ __attribute__ ((deprecated)) int set_window_close_button (int enable) { (void)enable; return 0; }





extern __inline__ __attribute__ ((deprecated)) void set_window_close_hook (void (*proc)(void)); extern __inline__ __attribute__ ((deprecated)) void set_window_close_hook (void (*proc)(void)) { set_close_button_callback(proc); }






__attribute__ ((deprecated)) void set_clip (BITMAP *bitmap, int x1, int y_1, int x2, int y2);



extern __inline__ __attribute__ ((deprecated)) void yield_timeslice (void); extern __inline__ __attribute__ ((deprecated)) void yield_timeslice (void) { ; if (system_driver->yield_timeslice) system_driver->yield_timeslice(); }
# 221 "/home/kibi/allegro4.4-4.4.2/include/allegro/alcompat.h"
extern void (*retrace_proc) (void);





extern __inline__ __attribute__ ((deprecated)) void set_file_encoding (int encoding); extern __inline__ __attribute__ ((deprecated)) void set_file_encoding (int encoding) { set_filename_encoding(encoding); }



extern __inline__ __attribute__ ((deprecated)) int get_file_encoding (void); extern __inline__ __attribute__ ((deprecated)) int get_file_encoding (void) { return get_filename_encoding(); }






   int timer_can_simulate_retrace (void);
   void timer_simulate_retrace (int enable);




__attribute__ ((deprecated)) int timer_is_using_retrace (void);
# 67 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2
# 77 "/home/kibi/allegro4.4-4.4.2/include/allegro.h"
# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/platform/alunix.h" 1
# 25 "/home/kibi/allegro4.4-4.4.2/include/allegro/platform/alunix.h"
extern int __crt0_argc;
extern char **__crt0_argv;
# 53 "/home/kibi/allegro4.4-4.4.2/include/allegro/platform/alunix.h"
extern TIMER_DRIVER timerdrv_unix_pthreads;
# 75 "/home/kibi/allegro4.4-4.4.2/include/allegro/platform/alunix.h"
extern DIGI_DRIVER digi_oss;





extern MIDI_DRIVER midi_oss;
# 148 "/home/kibi/allegro4.4-4.4.2/include/allegro/platform/alunix.h"
extern SYSTEM_DRIVER system_xwin;
# 78 "/home/kibi/allegro4.4-4.4.2/include/allegro.h" 2
# 20 "/home/kibi/allegro4.4-4.4.2/src/c/cgfx15.c" 2



# 1 "/home/kibi/allegro4.4-4.4.2/include/allegro/internal/aintern.h" 1
# 36 "/home/kibi/allegro4.4-4.4.2/include/allegro/internal/aintern.h"
extern int _allegro_count;



extern int _allegro_in_exit;



enum {
  NEVER_DISABLED,
  FULLSCREEN_DISABLED,
  ALWAYS_DISABLED
};

extern int _screensaver_policy;


extern int (*_al_trace_handler) (const char *msg);
# 66 "/home/kibi/allegro4.4-4.4.2/include/allegro/internal/aintern.h"
void * _al_malloc (size_t size);
void _al_free (void *mem);
void * _al_realloc (void *mem, size_t size);
char * _al_strdup (const char *string);
char * _al_ustrdup (const char *string);




extern void * _scratch_mem;
extern int _scratch_mem_size;


extern __inline__ void _grow_scratch_mem (int size); extern __inline__ void _grow_scratch_mem (int size) { if (size > _scratch_mem_size) { size = (size+1023) & 0xFFFFFC00; _scratch_mem = (_al_realloc(_scratch_mem, size)); _scratch_mem_size = size; } }
# 90 "/home/kibi/allegro4.4-4.4.2/include/allegro/internal/aintern.h"
void _add_exit_func (void (*func) (void), const char *desc);
void _remove_exit_func (void (*func) (void));



typedef struct UTYPE_INFO
{
   int id;
   int (*u_getc) (const char *s);
   int (*u_getx) (char **s);
   int (*u_setc) (char *s, int c);
   int (*u_width) (const char *s);
   int (*u_cwidth) (int c);
   int (*u_isok) (int c);
   int u_width_max;
} UTYPE_INFO;

UTYPE_INFO * _find_utype (int type);







int _al_file_isok (const char *filename);
uint64_t _al_file_size_ex (const char *filename);
time_t _al_file_time (const char *filename);
int _al_drive_exists (int drive);
int _al_getdrive (void);
void _al_getdcwd (int drive, char *buf, int size);

void _al_detect_filename_encoding (void);


long _al_file_size (const char *filename);



extern int _packfile_filesize;
extern int _packfile_datasize;
extern int _packfile_type;
PACKFILE * _pack_fdopen (int fd, const char *mode);

int _al_lzss_incomplete_state (const LZSS_UNPACK_DATA *dat);



void _reload_config(void);



void _handle_mouse_input (void);

extern int _mouse_x;
extern int _mouse_y;
extern int _mouse_z;
extern int _mouse_w;
extern int _mouse_b;
extern int _mouse_on;

extern int _mouse_installed;

extern int _mouse_type;
extern BITMAP * _mouse_screen;
extern BITMAP * _mouse_pointer;



long _handle_timer_tick (int interval);




typedef struct TIMER_QUEUE
{
   void (*proc) (void);
   void (*param_proc) (void *param);
   void *param;
   long speed;
   long counter;
} TIMER_QUEUE;

extern TIMER_QUEUE _timer_queue[];

extern int _timer_installed;

extern int _timer_use_retrace;
extern volatile int _retrace_hpp_value;

extern long _vsync_speed;



void _handle_key_press (int keycode, int scancode);
void _handle_key_release (int scancode);

extern int _keyboard_installed;
extern const char * _keyboard_common_names[];
extern volatile char _key[];
extern volatile int _key_shifts;
# 251 "/home/kibi/allegro4.4-4.4.2/include/allegro/internal/aintern.h"
extern int _joy_type;

extern int _joystick_installed;



int _gui_shadow_box_proc (int msg, DIALOG *d, int c);
int _gui_ctext_proc (int msg, DIALOG *d, int c);
int _gui_button_proc (int msg, DIALOG *d, int c);
int _gui_edit_proc (int msg, DIALOG *d, int c);
int _gui_list_proc (int msg, DIALOG *d, int c);
int _gui_text_list_proc (int msg, DIALOG *d, int c);

void _handle_scrollable_scroll_click (DIALOG *d, int listsize, int *offset, int height);
void _handle_scrollable_scroll (DIALOG *d, int listsize, int *idx, int *offset);
void _handle_listbox_click (DIALOG *d);
void _draw_scrollable_frame (DIALOG *d, int listsize, int offset, int height, int fg_color, int bg);
void _draw_listbox (DIALOG *d);
void _draw_textbox (char *thetext, int *listsize, int draw, int offset, int wword, int tabsize, int x, int y, int w, int h, int disabled, int fore, int deselect, int disable);



typedef struct FONT_VTABLE
{
   int (*font_height) (const FONT *f);
   int (*char_length) (const FONT *f, int ch);
   int (*text_length) (const FONT *f, const char *text);
   int (*render_char) (const FONT *f, int ch, int fg, int bg, BITMAP *bmp, int x, int y);
   void (*render) (const FONT *f, const char *text, int fg, int bg, BITMAP *bmp, int x, int y);
   void (*destroy) (FONT *f);

   int (*get_font_ranges) (FONT *f);
   int (*get_font_range_begin) (FONT *f, int range);
   int (*get_font_range_end) (FONT *f, int range);
   FONT * (*extract_font_range) (FONT *f, int begin, int end);
   FONT * (*merge_fonts) (FONT *f1, FONT *f2);
   int (*transpose_font) (FONT *f, int drange);
} FONT_VTABLE;

extern FONT_VTABLE _font_vtable_mono;
extern FONT_VTABLE * font_vtable_mono;
extern FONT_VTABLE _font_vtable_color;
extern FONT_VTABLE * font_vtable_color;
extern FONT_VTABLE _font_vtable_trans;
extern FONT_VTABLE * font_vtable_trans;

FONT_GLYPH * _mono_find_glyph (const FONT *f, int ch);
BITMAP * _color_find_glyph (const FONT *f, int ch);

typedef struct FONT_MONO_DATA
{
   int begin, end;
   FONT_GLYPH **glyphs;
   struct FONT_MONO_DATA *next;
} FONT_MONO_DATA;

typedef struct FONT_COLOR_DATA
{
   int begin, end;
   BITMAP **bitmaps;
   struct FONT_COLOR_DATA *next;
} FONT_COLOR_DATA;



extern int _last_bank_1;
extern int _last_bank_2;

extern int * _gfx_bank;


uintptr_t _stub_bank_switch (BITMAP *bmp, int lyne);
void _stub_unbank_switch (BITMAP *bmp);
void _stub_bank_switch_end (void);
# 355 "/home/kibi/allegro4.4-4.4.2/include/allegro/internal/aintern.h"
BITMAP * _make_bitmap (int w, int h, uintptr_t addr, GFX_DRIVER *driver, int color_depth, int bpl);
void _sort_out_virtual_width (int *width, GFX_DRIVER *driver);

GFX_VTABLE * _get_vtable (int color_depth);

extern GFX_VTABLE _screen_vtable;

extern int _gfx_mode_set_count;

extern int _refresh_rate_request;
void _set_current_refresh_rate (int rate);

extern int _wait_for_vsync;

extern int _sub_bitmap_id_count;

extern int _screen_split_position;

extern int _safe_gfx_mode_change;
# 390 "/home/kibi/allegro4.4-4.4.2/include/allegro/internal/aintern.h"
int _color_load_depth (int depth, int hasalpha);

extern int _color_conv;

BITMAP * _fixup_loaded_bitmap (BITMAP *bmp, PALETTE pal, int bpp);

int _bitmap_has_alpha (BITMAP *bmp);
# 415 "/home/kibi/allegro4.4-4.4.2/include/allegro/internal/aintern.h"
void _switch_in (void);
void _switch_out (void);

void _register_switch_bitmap (BITMAP *bmp, BITMAP *parent);
void _unregister_switch_bitmap (BITMAP *bmp);
void _save_switch_state (int switch_mode);
void _restore_switch_state (void);

extern int _dispsw_status;



extern int _drawing_mode;
extern BITMAP * _drawing_pattern;
extern int _drawing_x_anchor;
extern int _drawing_y_anchor;
extern unsigned int _drawing_x_mask;
extern unsigned int _drawing_y_mask;

extern int * (*_palette_expansion_table) (int bpp);

extern int _color_depth;

extern int _current_palette_changed;
extern PALETTE _prev_current_palette;
extern int _got_prev_current_palette;

extern int _palette_color8[];
extern int _palette_color15[];
extern int _palette_color16[];
extern int _palette_color24[];
extern int _palette_color32[];


extern BLENDER_FUNC _blender_func15;
extern BLENDER_FUNC _blender_func16;
extern BLENDER_FUNC _blender_func24;
extern BLENDER_FUNC _blender_func32;

extern BLENDER_FUNC _blender_func15x;
extern BLENDER_FUNC _blender_func16x;
extern BLENDER_FUNC _blender_func24x;

extern int _blender_col_15;
extern int _blender_col_16;
extern int _blender_col_24;
extern int _blender_col_32;

extern int _blender_alpha;

unsigned long _blender_black (unsigned long x, unsigned long y, unsigned long n);



unsigned long _blender_trans15 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_add15 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_burn15 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_color15 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_difference15 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_dissolve15 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_dodge15 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_hue15 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_invert15 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_luminance15 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_multiply15 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_saturation15 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_screen15 (unsigned long x, unsigned long y, unsigned long n);

unsigned long _blender_trans16 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_add16 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_burn16 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_color16 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_difference16 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_dissolve16 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_dodge16 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_hue16 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_invert16 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_luminance16 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_multiply16 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_saturation16 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_screen16 (unsigned long x, unsigned long y, unsigned long n);





unsigned long _blender_trans24 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_add24 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_burn24 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_color24 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_difference24 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_dissolve24 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_dodge24 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_hue24 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_invert24 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_luminance24 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_multiply24 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_saturation24 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_screen24 (unsigned long x, unsigned long y, unsigned long n);



unsigned long _blender_alpha15 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_alpha16 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_alpha24 (unsigned long x, unsigned long y, unsigned long n);
unsigned long _blender_alpha32 (unsigned long x, unsigned long y, unsigned long n);

unsigned long _blender_write_alpha (unsigned long x, unsigned long y, unsigned long n);



void _normal_line (BITMAP *bmp, int x1, int y_1, int x2, int y2, int color);
void _fast_line (BITMAP *bmp, int x1, int y_1, int x2, int y2, int color);
void _normal_rectfill (BITMAP *bmp, int x1, int y_1, int x2, int y2, int color);



int _linear_getpixel8 (BITMAP *bmp, int x, int y);
void _linear_putpixel8 (BITMAP *bmp, int x, int y, int color);
void _linear_vline8 (BITMAP *bmp, int x, int y_1, int y2, int color);
void _linear_hline8 (BITMAP *bmp, int x1, int y, int x2, int color);
void _linear_draw_sprite8 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_sprite_ex8 (BITMAP *bmp, BITMAP *sprite, int x, int y, int mode, int flip);
void _linear_draw_sprite_v_flip8 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_sprite_h_flip8 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_sprite_vh_flip8 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_trans_sprite8 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_lit_sprite8 (BITMAP *bmp, BITMAP *sprite, int x, int y, int color);
void _linear_draw_rle_sprite8 (BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y);
void _linear_draw_trans_rle_sprite8 (BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y);
void _linear_draw_lit_rle_sprite8 (BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y, int color);
void _linear_draw_character8 (BITMAP *bmp, BITMAP *sprite, int x, int y, int color, int bg);
void _linear_draw_glyph8 (BITMAP *bmp, const FONT_GLYPH *glyph, int x, int y, int color, int bg);
void _linear_blit8 (BITMAP *source,BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
void _linear_blit_backward8 (BITMAP *source,BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
void _linear_masked_blit8 (BITMAP *source, BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
void _linear_clear_to_color8 (BITMAP *bitmap, int color);





void _linear_putpixel15 (BITMAP *bmp, int x, int y, int color);
void _linear_vline15 (BITMAP *bmp, int x, int y_1, int y2, int color);
void _linear_hline15 (BITMAP *bmp, int x1, int y, int x2, int color);
void _linear_draw_trans_sprite15 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_trans_rgba_sprite15 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_lit_sprite15 (BITMAP *bmp, BITMAP *sprite, int x, int y, int color);
void _linear_draw_rle_sprite15 (BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y);
void _linear_draw_trans_rle_sprite15 (BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y);
void _linear_draw_trans_rgba_rle_sprite15 (BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y);
void _linear_draw_lit_rle_sprite15 (BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y, int color);

int _linear_getpixel16 (BITMAP *bmp, int x, int y);
void _linear_putpixel16 (BITMAP *bmp, int x, int y, int color);
void _linear_vline16 (BITMAP *bmp, int x, int y_1, int y2, int color);
void _linear_hline16 (BITMAP *bmp, int x1, int y, int x2, int color);
void _linear_draw_sprite16 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_sprite_ex16 (BITMAP *bmp, BITMAP *sprite, int x, int y, int mode, int flip);
void _linear_draw_256_sprite16 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_sprite_v_flip16 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_sprite_h_flip16 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_sprite_vh_flip16 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_trans_sprite16 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_trans_rgba_sprite16 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_lit_sprite16 (BITMAP *bmp, BITMAP *sprite, int x, int y, int color);
void _linear_draw_rle_sprite16 (BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y);
void _linear_draw_trans_rle_sprite16 (BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y);
void _linear_draw_trans_rgba_rle_sprite16 (BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y);
void _linear_draw_lit_rle_sprite16 (BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y, int color);
void _linear_draw_character16 (BITMAP *bmp, BITMAP *sprite, int x, int y, int color, int bg);
void _linear_draw_glyph16 (BITMAP *bmp, const FONT_GLYPH *glyph, int x, int y, int color, int bg);
void _linear_blit16 (BITMAP *source, BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
void _linear_blit_backward16 (BITMAP *source, BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
void _linear_masked_blit16 (BITMAP *source, BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
void _linear_clear_to_color16 (BITMAP *bitmap, int color);





int _linear_getpixel24 (BITMAP *bmp, int x, int y);
void _linear_putpixel24 (BITMAP *bmp, int x, int y, int color);
void _linear_vline24 (BITMAP *bmp, int x, int y_1, int y2, int color);
void _linear_hline24 (BITMAP *bmp, int x1, int y, int x2, int color);
void _linear_draw_sprite24 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_sprite_ex24 (BITMAP *bmp, BITMAP *sprite, int x, int y, int mode, int flip);
void _linear_draw_256_sprite24 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_sprite_v_flip24 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_sprite_h_flip24 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_sprite_vh_flip24 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_trans_sprite24 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_trans_rgba_sprite24 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_lit_sprite24 (BITMAP *bmp, BITMAP *sprite, int x, int y, int color);
void _linear_draw_rle_sprite24 (BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y);
void _linear_draw_trans_rle_sprite24 (BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y);
void _linear_draw_trans_rgba_rle_sprite24 (BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y);
void _linear_draw_lit_rle_sprite24 (BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y, int color);
void _linear_draw_character24 (BITMAP *bmp, BITMAP *sprite, int x, int y, int color, int bg);
void _linear_draw_glyph24 (BITMAP *bmp, const FONT_GLYPH *glyph, int x, int y, int color, int bg);
void _linear_blit24 (BITMAP *source, BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
void _linear_blit_backward24 (BITMAP *source, BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
void _linear_masked_blit24 (BITMAP *source, BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
void _linear_clear_to_color24 (BITMAP *bitmap, int color);





int _linear_getpixel32 (BITMAP *bmp, int x, int y);
void _linear_putpixel32 (BITMAP *bmp, int x, int y, int color);
void _linear_vline32 (BITMAP *bmp, int x, int y_1, int y2, int color);
void _linear_hline32 (BITMAP *bmp, int x1, int y, int x2, int color);
void _linear_draw_sprite32 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_sprite_ex32 (BITMAP *bmp, BITMAP *sprite, int x, int y, int mode, int flip);
void _linear_draw_256_sprite32 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_sprite_v_flip32 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_sprite_h_flip32 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_sprite_vh_flip32 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_trans_sprite32 (BITMAP *bmp, BITMAP *sprite, int x, int y);
void _linear_draw_lit_sprite32 (BITMAP *bmp, BITMAP *sprite, int x, int y, int color);
void _linear_draw_rle_sprite32 (BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y);
void _linear_draw_trans_rle_sprite32 (BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y);
void _linear_draw_lit_rle_sprite32 (BITMAP *bmp, const struct RLE_SPRITE *sprite, int x, int y, int color);
void _linear_draw_character32 (BITMAP *bmp, BITMAP *sprite, int x, int y, int color, int bg);
void _linear_draw_glyph32 (BITMAP *bmp, const FONT_GLYPH *glyph, int x, int y, int color, int bg);
void _linear_blit32 (BITMAP *source, BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
void _linear_blit_backward32 (BITMAP *source, BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
void _linear_masked_blit32 (BITMAP *source, BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
void _linear_clear_to_color32 (BITMAP *bitmap, int color);
# 677 "/home/kibi/allegro4.4-4.4.2/include/allegro/internal/aintern.h"
typedef struct GRAPHICS_RECT {
   int width;
   int height;
   int pitch;
   void *data;
} GRAPHICS_RECT;

typedef void (COLORCONV_BLITTER_FUNC)(GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);

COLORCONV_BLITTER_FUNC * _get_colorconv_blitter (int from_depth, int to_depth);
void _release_colorconv_blitter (COLORCONV_BLITTER_FUNC *blitter);
void _set_colorconv_palette (const struct RGB *p, int from, int to);
unsigned char * _get_colorconv_map (void);



void _colorconv_blit_8_to_8 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);
void _colorconv_blit_8_to_15 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);
void _colorconv_blit_8_to_16 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);
void _colorconv_blit_8_to_24 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);
void _colorconv_blit_8_to_32 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);





void _colorconv_blit_15_to_8 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);
void _colorconv_blit_15_to_16 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);
void _colorconv_blit_15_to_24 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);
void _colorconv_blit_15_to_32 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);

void _colorconv_blit_16_to_8 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);
void _colorconv_blit_16_to_15 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);
void _colorconv_blit_16_to_24 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);
void _colorconv_blit_16_to_32 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);





void _colorconv_blit_24_to_8 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);
void _colorconv_blit_24_to_15 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);
void _colorconv_blit_24_to_16 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);
void _colorconv_blit_24_to_32 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);





void _colorconv_blit_32_to_8 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);
void _colorconv_blit_32_to_15 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);
void _colorconv_blit_32_to_16 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);
void _colorconv_blit_32_to_24 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);
# 738 "/home/kibi/allegro4.4-4.4.2/include/allegro/internal/aintern.h"
void _colorcopy_blit_15_to_15 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);
void _colorcopy_blit_16_to_16 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);



void _colorcopy_blit_24_to_24 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);



void _colorcopy_blit_32_to_32 (GRAPHICS_RECT *src_rect, GRAPHICS_RECT *dest_rect);






void _blit_between_formats (BITMAP *src, BITMAP *dest, int s_x, int s_y, int d_x, int d_y, int w, int h);




void _do_stretch (BITMAP *source, BITMAP *dest, void *drawer, int sx, fixed sy, fixed syd, int dx, int dy, int dh, int color_depth);




void _parallelogram_map (BITMAP *bmp, BITMAP *spr, fixed xs[4], fixed ys[4], void (*draw_scanline)(BITMAP *bmp, BITMAP *spr, fixed l_bmp_x, int bmp_y, fixed r_bmp_x, fixed l_spr_x, fixed l_spr_y, fixed spr_dx, fixed spr_dy), int sub_pixel_accuracy);
void _parallelogram_map_standard (BITMAP *bmp, BITMAP *sprite, fixed xs[4], fixed ys[4]);
void _rotate_scale_flip_coordinates (fixed w, fixed h, fixed x, fixed y, fixed cx, fixed cy, fixed angle, fixed scale_x, fixed scale_y, int h_flip, int v_flip, fixed xs[4], fixed ys[4]);
void _pivot_scaled_sprite_flip (struct BITMAP *bmp, struct BITMAP *sprite, fixed x, fixed y, fixed cx, fixed cy, fixed angle, fixed scale, int v_flip);
# 791 "/home/kibi/allegro4.4-4.4.2/include/allegro/internal/aintern.h"
typedef struct POLYGON_SEGMENT
{
   fixed u, v, du, dv;
   fixed c, dc;
   fixed r, g, b, dr, dg, db;
   float z, dz;
   float fu, fv, dfu, dfv;
   unsigned char *texture;
   int umask, vmask, vshift;
   int seg;
   uintptr_t zbuf_addr;
   uintptr_t read_addr;
} POLYGON_SEGMENT;



typedef void (*SCANLINE_FILLER) (uintptr_t addr, int w, POLYGON_SEGMENT *info);



typedef struct POLYGON_EDGE
{
   int top;
   int bottom;
   fixed x, dx;
   fixed w;
   POLYGON_SEGMENT dat;
   struct POLYGON_EDGE *prev;
   struct POLYGON_EDGE *next;
   struct POLYGON_INFO *poly;
} POLYGON_EDGE;


typedef struct POLYGON_INFO
{
   struct POLYGON_INFO *next, *prev;
   int inside;
   int flags;
   int color;
   float a, b, c;
   int dmode;
   BITMAP *dpat;
   int xanchor, yanchor;
   int alpha;
   int b15, b16, b24, b32;
   COLOR_MAP *cmap;
   SCANLINE_FILLER drawer;
   SCANLINE_FILLER alt_drawer;
   POLYGON_EDGE *left_edge;
   POLYGON_EDGE *right_edge;
   POLYGON_SEGMENT info;
} POLYGON_INFO;



extern BITMAP * _zbuffer;



extern SCANLINE_FILLER _optim_alternative_drawer;
POLYGON_EDGE * _add_edge (POLYGON_EDGE *list, POLYGON_EDGE *edge, int sort_by_x);
POLYGON_EDGE * _remove_edge (POLYGON_EDGE *list, POLYGON_EDGE *edge);
int _fill_3d_edge_structure (POLYGON_EDGE *edge, const V3D *v1, const V3D *v2, int flags, BITMAP *bmp);
int _fill_3d_edge_structure_f (POLYGON_EDGE *edge, const V3D_f *v1, const V3D_f *v2, int flags, BITMAP *bmp);
SCANLINE_FILLER _get_scanline_filler (int type, int *flags, POLYGON_SEGMENT *info, BITMAP *texture, BITMAP *bmp);
void _clip_polygon_segment (POLYGON_SEGMENT *info, fixed gap, int flags);
void _clip_polygon_segment_f (POLYGON_SEGMENT *info, int gap, int flags);



void _poly_scanline_dummy (uintptr_t addr, int w, POLYGON_SEGMENT *info);



void _poly_scanline_gcol8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_grgb8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_mask8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_lit8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_lit8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_mask_lit8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask_lit8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_trans8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_trans8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_mask_trans8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask_trans8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);


void _poly_scanline_grgb8x (uintptr_t addr, int w, POLYGON_SEGMENT *info);


void _poly_zbuf_flat8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_gcol8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_grgb8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_mask8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_mask8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_lit8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_lit8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_mask_lit8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_mask_lit8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_trans8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_trans8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_mask_trans8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_mask_trans8 (uintptr_t addr, int w, POLYGON_SEGMENT *info);





void _poly_scanline_grgb15 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_mask15 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask15 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_lit15 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_lit15 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_mask_lit15 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask_lit15 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_trans15 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_trans15 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_mask_trans15 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask_trans15 (uintptr_t addr, int w, POLYGON_SEGMENT *info);


void _poly_scanline_grgb15x (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_lit15x (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_lit15x (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_mask_lit15x (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask_lit15x (uintptr_t addr, int w, POLYGON_SEGMENT *info);

void _poly_scanline_ptex_lit15d (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask_lit15d (uintptr_t addr, int w, POLYGON_SEGMENT *info);


void _poly_zbuf_grgb15 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_mask15 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_mask15 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_lit15 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_lit15 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_mask_lit15 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_mask_lit15 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_trans15 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_trans15 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_mask_trans15 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_mask_trans15 (uintptr_t addr, int w, POLYGON_SEGMENT *info);

void _poly_scanline_grgb16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_mask16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_lit16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_lit16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_mask_lit16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask_lit16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_trans16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_trans16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_mask_trans16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask_trans16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);


void _poly_scanline_grgb16x (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_lit16x (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_lit16x (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_mask_lit16x (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask_lit16x (uintptr_t addr, int w, POLYGON_SEGMENT *info);

void _poly_scanline_ptex_lit16d (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask_lit16d (uintptr_t addr, int w, POLYGON_SEGMENT *info);


void _poly_zbuf_flat16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_grgb16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_mask16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_mask16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_lit16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_lit16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_mask_lit16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_mask_lit16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_trans16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_trans16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_mask_trans16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_mask_trans16 (uintptr_t addr, int w, POLYGON_SEGMENT *info);





void _poly_scanline_grgb24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_mask24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_lit24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_lit24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_mask_lit24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask_lit24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_trans24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_trans24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_mask_trans24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask_trans24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);


void _poly_scanline_grgb24x (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_lit24x (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_lit24x (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_mask_lit24x (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask_lit24x (uintptr_t addr, int w, POLYGON_SEGMENT *info);

void _poly_scanline_ptex_lit24d (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask_lit24d (uintptr_t addr, int w, POLYGON_SEGMENT *info);


void _poly_zbuf_flat24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_grgb24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_mask24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_mask24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_lit24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_lit24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_mask_lit24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_mask_lit24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_trans24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_trans24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_mask_trans24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_mask_trans24 (uintptr_t addr, int w, POLYGON_SEGMENT *info);





void _poly_scanline_grgb32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_mask32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_lit32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_lit32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_mask_lit32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask_lit32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_trans32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_trans32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_mask_trans32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask_trans32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);


void _poly_scanline_grgb32x (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_lit32x (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_lit32x (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_atex_mask_lit32x (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask_lit32x (uintptr_t addr, int w, POLYGON_SEGMENT *info);

void _poly_scanline_ptex_lit32d (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_scanline_ptex_mask_lit32d (uintptr_t addr, int w, POLYGON_SEGMENT *info);


void _poly_zbuf_flat32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_grgb32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_mask32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_mask32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_lit32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_lit32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_mask_lit32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_mask_lit32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_trans32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_trans32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_atex_mask_trans32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);
void _poly_zbuf_ptex_mask_trans32 (uintptr_t addr, int w, POLYGON_SEGMENT *info);





extern MIDI_DRIVER _midi_none;
extern int _digi_volume;
extern int _midi_volume;
extern int _sound_flip_pan;
extern int _sound_hq;
extern int _sound_stereo;
extern int _sound_bits;
extern int _sound_freq;
extern int _sound_port;
extern int _sound_dma;
extern int _sound_irq;

extern int _sound_installed;
extern int _sound_input_installed;

int _midi_allocate_voice (int min, int max);

extern volatile long _midi_tick;

int _digmid_find_patches (char *dir, int dir_size, char *file, int size_of_file);




typedef struct
{
   const SAMPLE *sample;
   int num;
   int autokill;
   long time;
   int priority;
} VOICE;


typedef struct
{
   int num;
   int playmode;
   int vol;
   int dvol;
   int target_vol;
   int pan;
   int dpan;
   int target_pan;
   int freq;
   int dfreq;
   int target_freq;
} PHYS_VOICE;

extern PHYS_VOICE _phys_voice[];





int _mixer_init (int bufsize, int freq, int stereo, int is16bit, int *voices);
void _mixer_exit (void);
void _mix_some_samples (uintptr_t buf, unsigned short seg, int issigned);
void _mixer_init_voice (int voice, const SAMPLE *sample);
void _mixer_release_voice (int voice);
void _mixer_start_voice (int voice);
void _mixer_stop_voice (int voice);
void _mixer_loop_voice (int voice, int loopmode);
int _mixer_get_position (int voice);
void _mixer_set_position (int voice, int position);
int _mixer_get_volume (int voice);
void _mixer_set_volume (int voice, int volume);
void _mixer_ramp_volume (int voice, int tyme, int endvol);
void _mixer_stop_volume_ramp (int voice);
int _mixer_get_frequency (int voice);
void _mixer_set_frequency (int voice, int frequency);
void _mixer_sweep_frequency (int voice, int tyme, int endfreq);
void _mixer_stop_frequency_sweep (int voice);
int _mixer_get_pan (int voice);
void _mixer_set_pan (int voice, int pan);
void _mixer_sweep_pan (int voice, int tyme, int endpan);
void _mixer_stop_pan_sweep (int voice);
void _mixer_set_echo (int voice, int strength, int delay);
void _mixer_set_tremolo (int voice, int rate, int depth);
void _mixer_set_vibrato (int voice, int rate, int depth);

void _dummy_noop1 (int p);
void _dummy_noop2 (int p1, int p2);
void _dummy_noop3 (int p1, int p2, int p3);
int _dummy_load_patches (const char *patches, const char *drums);
void _dummy_adjust_patches (const char *patches, const char *drums);
void _dummy_key_on (int inst, int note, int bend, int vol, int pan);
# 1187 "/home/kibi/allegro4.4-4.4.2/include/allegro/internal/aintern.h"
void _unload_datafile_object (DATAFILE *dat);



typedef struct DATAFILE_TYPE
{
   int type;
   void * (*load) (PACKFILE *f, long size);
   void (*destroy) (void *);
} DATAFILE_TYPE;




extern DATAFILE_TYPE _datafile_type[];

extern int _compile_sprites;

void _construct_datafile (DATAFILE *data);



void _register_bitmap_file_type_init (void);


void _register_sample_file_type_init (void);


void _register_font_file_type_init (void);



struct _AL_LINKER_MIDI
{
   int (*init) (void);
   void (*exit) (void);
};

extern struct _AL_LINKER_MIDI * _al_linker_midi;

struct _AL_LINKER_MOUSE
{
   void (*set_mouse_etc) (void);
   void (*show_mouse) (BITMAP *);
   BITMAP **mouse_screen_ptr;
};

extern struct _AL_LINKER_MOUSE * _al_linker_mouse;



_DRIVER_INFO * _create_driver_list (void);
void _destroy_driver_list (_DRIVER_INFO *drvlist);
void _driver_list_append_driver (_DRIVER_INFO **drvlist, int id, void *driver, int autodetect);
void _driver_list_prepend_driver (_DRIVER_INFO **drvlist, int id, void *driver, int autodetect);
void _driver_list_append_list (_DRIVER_INFO **drvlist, _DRIVER_INFO *srclist);



void * _al_sane_realloc (void *ptr, size_t size);
char * _al_sane_strncpy (char *dest, const char *src, size_t n);



void _al_srand (int seed);
int _al_rand (void);
# 24 "/home/kibi/allegro4.4-4.4.2/src/c/cgfx15.c" 2
# 1 "/home/kibi/allegro4.4-4.4.2/src/c/cdefs15.h" 1
# 25 "/home/kibi/allegro4.4-4.4.2/src/c/cgfx15.c" 2
# 1 "/home/kibi/allegro4.4-4.4.2/src/c/cgfx.h" 1
# 24 "/home/kibi/allegro4.4-4.4.2/src/c/cgfx.h"
void _linear_putpixel15(BITMAP *dst, int dx, int dy, int color)
{
   ;

   if (dst->clip && ((dx < dst->cl) || (dx >= dst->cr) || (dy < dst->ct) || (dy >= dst->cb)))
      return;

   ;

   if (_drawing_mode == 0) {
      unsigned short* d = ((unsigned short*) (bmp_write_line(dst, dy)) + (dx));
      (*((uint16_t *)((uintptr_t) (d))) = ((color)));
   }
   else if (_drawing_mode == 1) {
      unsigned short* s = ((unsigned short*) (bmp_read_line(dst, dy)) + (dx));
      unsigned short* d = ((unsigned short*) (bmp_write_line(dst, dy)) + (dx));
      unsigned long c = (*((uint16_t *)((uintptr_t) (s)))) ^ color;
      (*((uint16_t *)((uintptr_t) (d))) = ((c)));
   }
   else if (_drawing_mode == 5) {
      unsigned short* s = ((unsigned short*) (bmp_read_line(dst, dy)) + (dx));
      unsigned short* d = ((unsigned short*) (bmp_write_line(dst, dy)) + (dx));
      BLENDER_FUNC blender = _blender_func15;
      unsigned long c = ((*(blender))((color), ((*((uint16_t *)((uintptr_t) (s))))), _blender_alpha));
      (*((uint16_t *)((uintptr_t) (d))) = ((c)));
   }
   else {
      unsigned long c = (*(((unsigned short*) ((unsigned short*) (_drawing_pattern->line[((dy) - _drawing_y_anchor) & _drawing_y_mask])) + (((dx) - _drawing_x_anchor) & _drawing_x_mask))));
      unsigned short* d = ((unsigned short*) (bmp_write_line(dst, dy)) + (dx));

      if (_drawing_mode == 2) {
  (*((uint16_t *)((uintptr_t) (d))) = ((c)));
      }
      else if (_drawing_mode == 3) {
  if (!((unsigned long) (c) == 0x7C1F)) {
     (*((uint16_t *)((uintptr_t) (d))) = ((color)));
  }
  else {
     (*((uint16_t *)((uintptr_t) (d))) = ((c)));
  }
      }
      else if (_drawing_mode == 4) {
  if (!((unsigned long) (c) == 0x7C1F)) {
     (*((uint16_t *)((uintptr_t) (d))) = ((color)));
  }
      }
   }

   bmp_unwrite_line(dst);
}






int _linear_getpixel15(BITMAP *src, int sx, int sy)
{
   ;

   if ((sx < 0) || (sx >= src->w) || (sy < 0) || (sy >= src->h))
      return -1;
   else {
      unsigned short* s = ((unsigned short*) (bmp_read_line(src, sy)) + (sx));
      unsigned long c;

      ;
      c = (*((uint16_t *)((uintptr_t) (s))));
      bmp_unwrite_line(src);

      return c;
   }
}






void _linear_hline15(BITMAP *dst, int dx1, int dy, int dx2, int color)
{
   int w;

   ;

   if (dx1 > dx2) {
      int tmp = dx1;
      dx1 = dx2;
      dx2 = tmp;
   }
   if (dst->clip) {
      if (dx1 < dst->cl)
  dx1 = dst->cl;
      if (dx2 >= dst->cr)
  dx2 = dst->cr - 1;
      if ((dx1 > dx2) || (dy < dst->ct) || (dy >= dst->cb))
  return;
   }

   w = dx2 - dx1;

   ;

   if (_drawing_mode == 0) {
      unsigned short* d = ((unsigned short*) (bmp_write_line(dst, dy)) + (dx1));
      do {
  (*((uint16_t *)((uintptr_t) (d))) = ((color)));
  ((d)++);
      } while (--w >= 0);
   }
   else if (_drawing_mode == 1) {
      unsigned short* s = ((unsigned short*) (bmp_read_line(dst, dy)) + (dx1));
      unsigned short* d = ((unsigned short*) (bmp_write_line(dst, dy)) + (dx1));
      do {
  unsigned long c = (*((uint16_t *)((uintptr_t) (s)))) ^ color;
  (*((uint16_t *)((uintptr_t) (d))) = ((c)));
  ((s)++);
  ((d)++);
      } while (--w >= 0);
   }
   else if (_drawing_mode == 5) {
      unsigned short* s = ((unsigned short*) (bmp_read_line(dst, dy)) + (dx1));
      unsigned short* d = ((unsigned short*) (bmp_write_line(dst, dy)) + (dx1));
      BLENDER_FUNC blender = _blender_func15;
      do {
  unsigned long c = ((*(blender))((color), ((*((uint16_t *)((uintptr_t) (s))))), _blender_alpha));
  (*((uint16_t *)((uintptr_t) (d))) = ((c)));
  ((s)++);
  ((d)++);
      } while (--w >= 0);
   }
   else {
      int x, curw;
      unsigned short* sline = (unsigned short*) (_drawing_pattern->line[((dy) - _drawing_y_anchor) & _drawing_y_mask]);
      unsigned short* s;
      unsigned short* d = ((unsigned short*) (bmp_write_line(dst, dy)) + (dx1));

      x = (dx1 - _drawing_x_anchor) & _drawing_x_mask;
      s = ((unsigned short*) (sline) + (x));
      w++;
      curw = _drawing_x_mask + 1 - x;
      if (curw > w)
  curw = w;

      if (_drawing_mode == 2) {
  do {
     w -= curw;
     do {
        unsigned long c = (*(s));
        (*((uint16_t *)((uintptr_t) (d))) = ((c)));
        ((s)++);
        ((d)++);
     } while (--curw > 0);
     s = sline;
     curw = (((w) < ((int)_drawing_x_mask+1)) ? (w) : ((int)_drawing_x_mask+1));
  } while (curw > 0);
      }
      else if (_drawing_mode == 3) {
  do {
     w -= curw;
     do {
        unsigned long c = (*(s));
        if (!((unsigned long) (c) == 0x7C1F)) {
    (*((uint16_t *)((uintptr_t) (d))) = ((color)));
        }
        else {
    (*((uint16_t *)((uintptr_t) (d))) = ((c)));
        }
        ((s)++);
        ((d)++);
     } while (--curw > 0);
     s = sline;
     curw = (((w) < ((int)_drawing_x_mask+1)) ? (w) : ((int)_drawing_x_mask+1));
  } while (curw > 0);
      }
      else if (_drawing_mode == 4) {
  do {
     w -= curw;
     do {
        unsigned long c = (*(s));
        if (!((unsigned long) (c) == 0x7C1F)) {
    (*((uint16_t *)((uintptr_t) (d))) = ((color)));
        }
        ((s)++);
        ((d)++);
     } while (--curw > 0);
     s = sline;
     curw = (((w) < ((int)_drawing_x_mask+1)) ? (w) : ((int)_drawing_x_mask+1));
  } while (curw > 0);
      }
   }

   bmp_unwrite_line(dst);
}






void _linear_vline15(BITMAP *dst, int dx, int dy1, int dy2, int color)
{
   int y;

   ;

   if (dy1 > dy2) {
      int tmp = dy1;
      dy1 = dy2;
      dy2 = tmp;
   }
   if (dst->clip) {
      if (dy1 < dst->ct)
  dy1 = dst->ct;
      if (dy2 >= dst->cb)
  dy2 = dst->cb - 1;
      if ((dx < dst->cl) || (dx >= dst->cr) || (dy1 > dy2))
  return;
   }

   if (_drawing_mode == 0) {
      ;
      for (y = dy1; y <= dy2; y++) {
  unsigned short* d = ((unsigned short*) (bmp_write_line(dst, y)) + (dx));
  (*((uint16_t *)((uintptr_t) (d))) = ((color)));
      }
      bmp_unwrite_line(dst);
   }
   else {
      int clip = dst->clip;

      dst->clip = 0;
      for (y = dy1; y <= dy2; y++) {
  _linear_putpixel15(dst, dx, y, color);
      }
      dst->clip = clip;
   }
}
# 26 "/home/kibi/allegro4.4-4.4.2/src/c/cgfx15.c" 2

Attachment: signature.asc
Description: Digital signature


Reply to: