Mercurial > pidgin
diff plugins/crazychat/face.h @ 11218:ed017b9c532d
[gaim-migrate @ 13350]
crazychat commit, first one.
committer: Tailor Script <tailor@pidgin.im>
author | Charlie Stockman <chuckleberry> |
---|---|
date | Tue, 09 Aug 2005 07:10:23 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugins/crazychat/face.h Tue Aug 09 07:10:23 2005 +0000 @@ -0,0 +1,44 @@ +#ifndef __FACE_H__ +#define __FACE_H__ + +#include <GL/gl.h> +#include <GL/glu.h> +#include "glm.h" + +#define NUM_PARTS 10 +#define DOG_SHARK_CHANGE 5 +#define CRAZY_COUNT 12 +#define MAX_EYE_POP 1.3 +#define EYE_TIME 120 +#define MAX_FILE_LEN 64 +#define ANGLE_INC 60 + +typedef enum {DOG, SHARK} KIND; +typedef int BOOL; +typedef enum {UP, DOWN, CONST} DIRECTION; +typedef enum {NORMAL, CRAZY1, CRAZY2, CRAZY3} OUTPUT_MODE; + +struct face_struct { + char* name; + KIND my_kind; + void* char_struct; + GLint* mat_indeces; + GLMmat_str* materials; + OUTPUT_MODE my_mode; + int eye_count, crazy_count; + void (*draw_func)(struct face_struct*, GLfloat, GLfloat, BOOL, BOOL, GLfloat, DIRECTION, OUTPUT_MODE); + float curr_z_angle, curr_eye_pop; +}; + +typedef struct face_struct* FACE; +typedef enum {APPENDAGE, HEAD, LIDS, LEFT_IRIS, RIGHT_IRIS, EYES, PUPIL, EXTRA1, EXTRA2, EXTRA3} PART; + +FACE init_face(KIND kind); + +FACE copy_face(FACE f); + +void draw_face(FACE face, GLfloat zrot, GLfloat yrot, BOOL left_eye, BOOL right_eye, GLfloat mouth_open, DIRECTION dir, OUTPUT_MODE mode); + +void change_materials(FACE face, int* mats, int num_change); + +#endif