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