Mercurial > pidgin
view plugins/crazychat/models.c @ 13845:d0ff520f87da
[gaim-migrate @ 16301]
This is tcl /cmd support. It doesn't currently let tcl plugins return error
message (I couldn't ever get that to work). But other than that it works.
Ethan please look over this when you get a chance.
committer: Tailor Script <tailor@pidgin.im>
| author | Etan Reisner <pidgin@unreliablesource.net> |
|---|---|
| date | Wed, 21 Jun 2006 04:57:27 +0000 |
| parents | ed017b9c532d |
| children |
line wrap: on
line source
#include"glm.h" #include <GL/gl.h> #include <GL/glu.h> #include "face.h" #define ASCII_DIGITS 48 void init_lists(GLint** lists, GLMmodel*** models, int num_lists, char* name, float my_scale){ int i; char c; GLint* temp_lists; GLMmodel** temp_models; char* temp = (char*)malloc(sizeof(char) * (strlen(name) + strlen(".obj" + 3))); GLMmodel* model; float dum; temp_lists = (GLint*)malloc(sizeof(GLint) * num_lists); temp_models = (GLMmodel**)malloc(sizeof(GLMmodel*) * num_lists); for(i=0;i<num_lists;i++) { strcpy(temp, name); if(i<10){ c = (char)(ASCII_DIGITS+i); strncat(temp, &c, 1); } else{ c = (char)(i/10+ASCII_DIGITS); strncat(temp, &c, 1); c = (char)(i%10 + ASCII_DIGITS); strncat(temp, &c, 1); } strcat(temp, ".obj"); temp_models[i]=glmReadOBJ(temp); glmScale(temp_models[i], my_scale); dum =glmUnitize(temp_models[i]); // this actually just centers //printf("%s factor %f", temp, dum); temp_lists[i]=glmList(temp_models[i], GLM_SMOOTH); } *lists = temp_lists; *models = temp_models; free(temp); } int compute_lid(BOOL open, int curr_lid, int max){ if(open) { if(curr_lid < max){ curr_lid++; } else curr_lid=max; } else { if(curr_lid >=2){ curr_lid-=2; } else if(curr_lid==1){ curr_lid--; } curr_lid=0; } return curr_lid; } void apply_output_mode(FACE f, GLfloat* angle, GLfloat* yangle, BOOL* left_open, BOOL* right_open, GLfloat* open, DIRECTION* dir) { struct doggy_struct* dog = (struct doggy_struct*)f->char_struct; if(f->my_mode==NORMAL){ f->curr_z_angle=0; return; } if(f->my_mode==CRAZY1){ f->curr_z_angle = f->curr_z_angle+ANGLE_INC; *angle = f->curr_z_angle; } }
