Exemple #1
0
void task_exec_test()
{
	//Create the task
	task_t *task = task_create(work_noArgument, NO_ARGUMENT, HIGH);

	//Execute task
	task_exec(task);

	//Asserts
	assert(task->status == EXECUTED);
	assert(task_exec(task) == 0);
	assert(noArgument_int == 1);
	noArgument_int = 0;

	//Free memory
	free(task);
}
void cb_execute()
{
	task_exec();
	objc_exec();
	obj_sync_something();
	fade_and_return_progress_probably();
	return;
}
void battle_ground_make() {
	task_exec();
	objc_exec();
	obj_sync_something();
	//tilemaps_sync();
	switch (superstate.multipurpose_state_tracker) {
		case 0:
		{
			temp_vars.var_8001 = 0;
			/*// REG_DISPCNT setup
			REG_DISPCNT.mode = 2;
			REG_DISPCNT.GBC_mode = 0;
			REG_DISPCNT.frame_select = 0;
			REG_DISPCNT.hblank_oam_process = 0;
			REG_DISPCNT.sprite_tile_mapping = 0; //2d or 3d mapping
			REG_DISPCNT.screen_blank = 0;
			REG_DISPCNT.BG0_enable = 1;
			REG_DISPCNT.BG1_enable = 1;
			REG_DISPCNT.BG2_enable = 1;
			REG_DISPCNT.BG3_enable = 0;
			REG_DISPCNT.sprite_enable = 1;
			REG_DISPCNT.win0_enable = 0;
			REG_DISPCNT.win1_enable = 0;
			REG_DISPCNT.oam_win_enable = 0;
			temp_vars.var_8000 = *DISPCNT;
			
			// REG_BGCNT
				u8 i;
			for (i = 0; i < 4; i ++) {
				BG_CNT[i].priority = i;
				BG_CNT[i].char_index = i;
				BG_CNT[i].padding = 0;
				BG_CNT[i].mosiac = 0;
				BG_CNT[i].color = 0;
				BG_CNT[i].map_index = (0x1F - i);
				BG_CNT[i].screen_over = 0;
				BG_CNT[i].size = 0;
				
			}
			BG_CNT[1].color = 1;
			lcd_io_set(0x50, 0x2F00);
			lcd_io_set(0x52, 0x0F);*/
			test();
			superstate.multipurpose_state_tracker++;
			break;
		}
		case 1:
		{
			// load VRAM BG background
			u8 bg_config_data[16] = {0xF0, 0x11, 0x0, 0x0, 0xE5, 0x09, 0x0, 0x0, 0xDA, 0x21, 0x0, 0x0, 0xCF, 0x31, 0x0, 0x0};
			void bg_vram_setup(u8, u8 *, u8);
			// mode, setup, amount of bgs to config
			bg_vram_setup(0, (u8 *)&bg_config_data, 4);
			set_bg(0, (u8 *)sky_tiles, (u8 *)sky_map, (u8 *)sky_pal, 6, 32);
			set_bg(1, (u8 *)tree_tiles, (u8 *)tree_map, (u8 *)tree_pal, 0, 160);
			superstate.multipurpose_state_tracker++;
			break;
		}
		case 2:
		{
			// wtb better clouds
			task_add(sky_scroll, 0x1);
			superstate.multipurpose_state_tracker++;
			break;
		}
		case 3:
		{
			void gpu_bg_config_set_field(u8, u8, u8);
			gpu_bg_config_set_field(0, 5, 1);
			superstate.multipurpose_state_tracker++;
			break;
		}
		case 4:
		{
			make_player(0);
			make_opponent(0);
			superstate.multipurpose_state_tracker++;
			break;
		}
		case 5:
		{
			player_char_movement();
			break;
		}
		case 99:
		{
			// waitstate + next command buffer
			player_movement_buffer();
			break;
		}
		default:
			break;
	};


}