Esempio n. 1
0
void g1_tile_class::init()
{
	flags=SELECTABLE;
	texture=0;
	filename_checksum=0;
	selection_order=0;
	damping_fraction=1.0f;
	damping_e=1.0f;
	friction_fraction=1.0f;
	damage=0;

	set_friction(g1_resources.damping_friction);
}
Esempio n. 2
0
/**
 * リスタート時の処理
 *
 */
void Girl::restart()
{
	ActiveObject::restart();

	set_angular_factor( 0 );
	set_friction( 0 );

	mode_ = MODE_STAND;

	play_animation( "Stand", true, true );

	flicker_base_location_ = get_start_location();
}
Esempio n. 3
0
// format of ("texture_name" (property_name prop_value)..)
void g1_tile_class::get_properties(li_object * properties, li_environment * env)
{
	while (properties)
	{
		li_symbol * sym=li_symbol::get(li_car(li_car(properties,env),env),env);
		li_object * temp=li_cdr(li_car(properties,env),env);
		if (!temp)
		{
			li_error(env,"USER: Missing texture property argument");
		}
		li_object * value=li_car(temp,env);

		if (sym==li_get_symbol("block", g1_block))
		{
			if (li_get_bool(value,env))
			{
				flags|=BLOCKING;
			}
			else
			{
				flags&=~BLOCKING;
			}
		}
		else if (sym==li_get_symbol("wave", g1_wave))
		{
			if (li_get_bool(value,env))
			{
				flags|=WAVE;
			}
			else
			{
				flags&=~WAVE;
			}
		}
		else if (sym==li_get_symbol("selectable", g1_selectable))
		{
			//By default, this property is true.
			if (li_get_bool(value, env))
			{
				flags|=SELECTABLE;
			}
			else
			{
				flags&=~SELECTABLE;
			}
		}
		else if (sym==li_get_symbol("friction", g1_friction))
		{
			set_friction((float)(li_float::get(value,env)->value()));
		}
		else if (sym==li_get_symbol("damage", g1_damage))
		{
			damage = li_int::get(value,env)->value();
		}
		else if (sym==li_get_symbol("save_name", g1_save_name))
		{
			w32 newkey=i4_str_checksum(i4_const_str(li_string::get(value,env)->value()));
			//must fake the insertion of a pointer
			g1_tile_man.store_alternate_checksum(newkey,filename_checksum);
			filename_checksum=newkey;
		}
		else if (sym==li_get_symbol("alternate_checksum", g1_alternate_checksum))
		{
			w32 newkey=li_int::get(value,env)->value();
			if (newkey!=0 && newkey!=filename_checksum)
			{
				g1_tile_man.store_alternate_checksum(newkey,filename_checksum);
				filename_checksum=newkey;
			}
		}
		else if (sym==li_get_symbol("flags"))
		{
			//Used internally for flag saving
			flags=li_int::get(value,env)->value();
		}
		else
		{
			i4_error("bad texture flag '%s' should be block, wave, selectable, friction, save_name, alternate_checksum or flags",
					 sym->name()->value());
		}

		properties=li_cdr(properties,env);
	}
}