예제 #1
0
파일: ogenmap.cpp 프로젝트: mecirt/7k2
//-------- Begin of function World::generate_map2 ----------//
//
void World::generate_map2()
{
	gen_dirt(25,10,15);

	game.disp_gen_game_status(5);

	//---------------------------------//

	plant_init(60, 2);

	game.disp_gen_game_status(10);

	//---------------------------------//

	init_fire();

	game.disp_gen_game_status(5);

	//----- debug code: validate terrain_id -----//

	#ifdef DEBUG

	Location* locPtr = loc_matrix;

	for( int i=0 ; i<MAX_WORLD_X_LOC*MAX_WORLD_Y_LOC ; i++, locPtr++ )
	{
		err_when( locPtr->terrain_id < 1 ||
					 locPtr->terrain_id > terrain_res.terrain_count );
	}

	#endif
}
예제 #2
0
파일: plant.c 프로젝트: syy2868/787Project
/* Function block execution function */
void plantrun(plant* me)
{
    me->_output.events = 0;

    for (;;) {
        switch (me->_state) {
            case 0:
                // State: Start
                if (!me->_entered) {
                    plant_init(me);
                    me->_output.event.update = 1;
                    me->_entered = true;
                }
                else {
                    me->_state = 1;
                    me->_entered = false;
                    continue;
                }
                break;
            case 1:
                // State: State1
                if (!me->_entered) {
                    plant_norod(me);
                    me->_output.event.update = 1;
                    me->_entered = true;
                }
                else {
                    if (me->_input.event.add2) {
                        me->_state = 2;
                        me->_entered = false;
                        continue;
                    }
                    else if (me->_input.event.add1) {
                        me->_state = 5;
                        me->_entered = false;
                        continue;
                    }
                    else {
                        me->_state = 1;
                        me->_entered = false;
                        continue;
                    }
                }
                break;
            case 2:
                // State: State6
                if (!me->_entered) {
                    plant_initval2(me);
                    me->_entered = true;
                }
                else {
                    me->_state = 3;
                    me->_entered = false;
                    continue;
                }
                break;
            case 3:
                // State: State3
                if (!me->_entered) {
                    plant_rod2(me);
                    me->_output.event.update = 1;
                    me->_entered = true;
                }
                else {
                    if (me->_input.event.remove2) {
                        me->_state = 4;
                        me->_entered = false;
                        continue;
                    }
                    else {
                        me->_state = 3;
                        me->_entered = false;
                        continue;
                    }
                }
                break;
            case 4:
                // State: State5
                if (!me->_entered) {
                    plant_initvalno(me);
                    me->_entered = true;
                }
                else {
                    me->_state = 1;
                    me->_entered = false;
                    continue;
                }
                break;
            case 5:
                // State: State4
                if (!me->_entered) {
                    plant_initval1(me);
                    me->_entered = true;
                }
                else {
                    me->_state = 6;
                    me->_entered = false;
                    continue;
                }
                break;
            case 6:
                // State: State2
                if (!me->_entered) {
                    plant_rod1(me);
                    me->_output.event.update = 1;
                    me->_entered = true;
                }
                else {
                    if (me->_input.event.remove1) {
                        me->_state = 4;
                        me->_entered = false;
                        continue;
                    }
                    else {
                        me->_state = 6;
                        me->_entered = false;
                        continue;
                    }
                }
                break;
        }
        break;
    }
    if (me->_output.event.update) {
        me->_x = me->x;
    }

    me->_input.events = 0;
}