Exemplo n.º 1
0
void scene::update_hierarchy(bool forced)
{
  if(!forced && !flag_get(FRAME_NEEDS_UPDATE_HIERARCHY))
    return;
  
  SCENE_OBJECT *p_obj;
  
  // Update all positions of local objects
  OBJECT_HIERARCHY_ITERATOR it = render_hierarchy_next_new();
  while((p_obj = render_hierarchy_next(&it))) {
    if(p_obj->object_is_geometry()) {
      ((SCENE_OBJECT_GEOMETRY *)p_obj)->object_world_hierarchy_update(forced);
    }
  }

  // Update complete hierarchy
  int  changed = 0;
  it = render_hierarchy_next_new();
  while((p_obj = render_hierarchy_next(&it))) {
    if(p_obj->object_is_geometry()) {
      changed += ((SCENE_OBJECT_GEOMETRY *)p_obj)->object_box_hierarchy_update(forced);
    }
  }
  
  flag_clear(FRAME_NEEDS_UPDATE_HIERARCHY);
  
  if(changed) {
    flag_set(SCENE_NEEDS_UPDATE_BOX);
  }
}
Exemplo n.º 2
0
void scene::update_box(bool forced)
{
  if(!forced && !flag_get(SCENE_NEEDS_UPDATE_BOX))
    return;
  scene_box_update();  
  flag_clear(SCENE_NEEDS_UPDATE_BOX);
}
Exemplo n.º 3
0
void scene::update_animations(bool forced)
{
  if(!forced && !flag_get(FRAME_NEEDS_UPDATE_ANIMATIONS))
    return;
  
  
  flag_clear(FRAME_NEEDS_UPDATE_ANIMATIONS);  
}
Exemplo n.º 4
0
int flag_get(unsigned long flag, int clear)
{
	if(g_flags && flag)
	{
		if(clear) flag_clear(flag);
		return 1;
	}
	return 0;
}
Exemplo n.º 5
0
// ********************************
// Mesh geometry
// ********************************
void mesh_geometry::box_update(bool force)
{
  if((force || flag_get(GEOMETRY_BOX_DIRTY)) && vertexnum_get() && facenum_get()) {
    if(!p_box) {
      p_box = box_create(box_type);
    }
    
    lock();
    p_box->set(position_get(), vertexnum_get(), faces_get(), facenum_get());
    unlock();
    
    flag_clear(GEOMETRY_BOX_DIRTY);
    box_change_set();
  }
}
Exemplo n.º 6
0
void scene::update_renderlist(bool forced)
{
  if(!forced && !flag_get(FRAME_NEEDS_UPDATE_RENDERLIST))
    return;

  int rendered = 0;
  
  render_list.render_list_head_init();
  
  OBJECT_HIERARCHY_ITERATOR it = render_hierarchy_next_new();
  SCENE_OBJECT *p_obj;
  
  while((p_obj = render_hierarchy_next(&it))) {
    if(p_obj->object_is_rendered()) {      
      if(((SCENE_OBJECT_GEOMETRY *)p_obj)->visible()) {
        render_list.render_list_insert(p_obj);
        rendered++;
      }
    }
  }  
  
  flag_clear(FRAME_NEEDS_UPDATE_RENDERLIST);
}
Exemplo n.º 7
0
// 08080450
void trainer_flag_clear(u16 trainer_id) {
	flag_clear(trainer_id+0x500);
}
Exemplo n.º 8
0
int add_common_opt(char *var, char *val,iface_t *ifp)
{
    char *ptr;

    if (!strcasecmp(var,"direction")) {
        if (!strcasecmp(val,"in"))
            ifp->direction = IN;
        else if (!strcasecmp(val,"out"))
            ifp->direction = OUT;
        else if (!strcasecmp(val,"both"))
            ifp->direction = BOTH;
        else return(-2);
    } else if (!strcmp(var,"ifilter")) {
        if (ifp->ifilter)
            free_filter(ifp->ifilter);
        if ((ifp->ifilter=getfilter(val)) == NULL)
        return(-2);
    } else if (!strcmp(var,"ofilter")) {
        if (ifp->ofilter)
            free_filter(ifp->ofilter);
        if ((ifp->ofilter=getfilter(val)) == NULL)
        return(-2);
    } else if (!strcmp(var,"strict")) {
        if (!strcasecmp(val,"yes")) {
            ifp->strict=1;
        } else if (!strcasecmp(val,"no")) {
            ifp->strict=0;
        } else
            return(-2);
    } else if (!strcmp(var,"checksum")) {
        if (!strcasecmp(val,"yes")) {
            ifp->checksum=1;
        } else if (!strcasecmp(val,"no")) {
            ifp->checksum=0;
        } else
            return(-2);
    } else if (!strcmp(var,"timestamp")) {
        if (!strcasecmp(val,"s")) {
            ifp->tagflags |= TAG_TS;
            ifp->tagflags &= ~TAG_MS;
        } else if (!strcasecmp(val,"ms")) {
            ifp->tagflags |= (TAG_TS|TAG_MS);
        } else
            return(-2);
    } else if (!strcmp(var,"srctag")) {
        if (!strcasecmp(val,"yes")) {
            ifp->tagflags |= TAG_SRC;
        } else if (!strcasecmp(val,"no")) {
            ifp->tagflags &= ~TAG_SRC;
        } else if (!strcasecmp(val,"input")) {
            ifp->tagflags |= TAG_SRC;
            ifp->tagflags |= TAG_ISRC;
        } else
            return(-2);
    } else if (!strcmp(var,"persist")) {
        if (!strcasecmp(val,"yes")) {
            flag_set(ifp,F_PERSIST);
            flag_clear(ifp,F_IPERSIST);
        } else if (!strcasecmp(val,"fromstart")) {
            flag_set(ifp,F_PERSIST);
            flag_set(ifp,F_IPERSIST);
        } else if (!strcasecmp(val,"no")) {
            flag_clear(ifp,F_PERSIST);
            flag_clear(ifp,F_IPERSIST);
        } else
            return(-2);
    } else if (!strcmp(var,"loopback")) {
        if (!strcasecmp(val,"yes")) {
            flag_set(ifp,F_LOOPBACK);
        } else if (!strcasecmp(val,"no")) {
            flag_clear(ifp,F_LOOPBACK);
        } else
            return(-2);
    } else if (!strcmp(var,"optional")) {
        if (!strcasecmp(val,"yes")) {
            flag_set(ifp,F_OPTIONAL);
        } else if (!strcasecmp(val,"no")) {
            flag_clear(ifp,F_OPTIONAL);
        } else
            return(-2);
    } else if (!strcmp(var,"eol")) {
        if (!strcasecmp(val,"n")) {
            flag_set(ifp,F_NOCR);
        } else if (!strcasecmp(val,"rn")) {
            flag_clear(ifp,F_NOCR);
        } else
            return(-2);
    } else if (!strcasecmp(var,"name")) {
        if ((ifp->name=(char *)malloc(strlen(val)+1)) == NULL)
            return(-1);
        for (ptr=ifp->name;*val;)
                *ptr++= *val++;
    } else
        return(1);

    return(0);
}
void trainerflag_clear_fix(u16 flag) { flag_clear(trainerflag_fix_difficulty(flag + TRAINER_FLAG_SPACE_START)); }