Mon, 24 Oct 2005 05:22:14 +0000
[gaim-migrate @ 14081]
Deleting multiple items from the list of corrections in the text
replacement/spellchk plugin didn't work correctly.
It would start at the top of the list, and delete items moving
downward. Apparently this screwed up the GtkTreePaths or something,
so it would delete the wrong iter. So now we start at the bottom
and move up :-)
#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; } }