Browse Source

fix:1.修正游戏内存过大问题

pcb_v4_issue
Zhangwen 2 months ago
parent
commit
e2399eedd7
  1. 72
      source/app/task_game.c
  2. 51
      source/app/task_game.h

72
source/app/task_game.c

@ -29,6 +29,7 @@
// 游戏内容码 // 游戏内容码
S_TASK_GAME _s_task_game; S_TASK_GAME _s_task_game;
POINT_BUF pointbuf;
// 非点读类游戏 // 非点读类游戏
#define GAME_OID_ZLXS_4 0x2800 #define GAME_OID_ZLXS_4 0x2800
@ -62,46 +63,49 @@ void L3_task_game_init(void)
{ {
U8 i = 0; U8 i = 0;
U8 j = 0; U8 j = 0;
U8 *p = (U8*)&pointbuf;
L1_task_init(&_s_task_game.task); L1_task_init(&_s_task_game.task);
L3_task_s_go(_s_task_game,D_task_init); L3_task_s_go(_s_task_game,D_task_init);
_s_task_game.read_oid = 0; _s_task_game.read_oid = 0;
_s_task_game.error_oid = EEROR_OID; _s_task_game.error_oid = EEROR_OID;
_s_task_game.game_maxseconds = GAME_MAX_SECONDS; _s_task_game.game_maxseconds = GAME_MAX_SECONDS;
for (i = 0; i < game_num_max; i++) for (i = 0; i < sizeof(pointbuf); i++)
{ {
_s_task_game.game_info[i].game_oid = 0; *p++ = 0;
for (j = 0; j < game_supported_oid_max; j++)
{
_s_task_game.game_info[i].game_supported_oid[j].oid = 0;
_s_task_game.game_info[i].game_supported_oid[j].yes_or_no = 1;
_s_task_game.game_info[i].game_supported_oid[j].point_audio = NULL;
_s_task_game.game_info[i].game_supported_oid[j].handled = 0;
}
} }
p = (U8*)&pointbuf;
// 找不同1星 // 找不同1星
_s_task_game.game_info[0].game_oid = GAME_OID_ZBT_1; _s_task_game.game_info[0].game_oid = GAME_OID_ZBT_1;
_s_task_game.game_info[0].game_audio = &audio_game_different_1; _s_task_game.game_info[0].game_audio = &audio_game_different_1;
_s_task_game.game_info[0].game_supported_oid = pointbuf.zbt_1;
_s_task_game.game_info[0].game_oid_num = zbt_1_num;
_s_task_game.game_info[0].game_supported_oid[0].oid = 0xB001; _s_task_game.game_info[0].game_supported_oid[0].oid = 0xB001;
_s_task_game.game_info[0].game_supported_oid[1].oid = 0xB002; _s_task_game.game_info[0].game_supported_oid[1].oid = 0xB002;
_s_task_game.game_info[0].game_supported_oid[2].oid = 0xB003; _s_task_game.game_info[0].game_supported_oid[2].oid = 0xB003;
// _s_task_game.game_info[0].game_supported_oid[3].oid = 0xB004; // _s_task_game.game_info[0].game_supported_oid[3].oid = 0xB004;
_s_task_game.game_info[0].game_supported_oid[3].oid = 0xB0FF; //错误码 _s_task_game.game_info[0].game_supported_oid[3].oid = 0xB0FF; //错误码
_s_task_game.game_info[0].game_supported_oid[3].yes_or_no = 0; _s_task_game.game_info[0].game_supported_oid[3].yes_or_no = 1;
_s_task_game.game_info[0].game_order = 0; _s_task_game.game_info[0].game_order = 0;
_s_task_game.game_info[0].game_timeout_seconds = 60; _s_task_game.game_info[0].game_timeout_seconds = 60;
_s_task_game.game_info[0].game_score = 0; _s_task_game.game_info[0].game_score = 0;
// 走迷宫1星 // 走迷宫1星
_s_task_game.game_info[2].game_oid = GAME_OID_ZMG_1; _s_task_game.game_info[2].game_oid = GAME_OID_ZMG_1;
_s_task_game.game_info[2].game_audio = &audio_game_maze_1; _s_task_game.game_info[2].game_audio = &audio_game_maze_1;
_s_task_game.game_info[2].game_supported_oid = pointbuf.zmg_1;
_s_task_game.game_info[2].game_oid_num = zmg_1_num;
_s_task_game.game_info[2].game_supported_oid[0].oid = 0xC001; _s_task_game.game_info[2].game_supported_oid[0].oid = 0xC001;
_s_task_game.game_info[2].game_supported_oid[1].oid = 0xC002; _s_task_game.game_info[2].game_supported_oid[1].oid = 0xC002;
_s_task_game.game_info[2].game_supported_oid[2].oid = 0xC003; _s_task_game.game_info[2].game_supported_oid[2].oid = 0xC003;
_s_task_game.game_info[2].game_supported_oid[3].oid = 0xC004; _s_task_game.game_info[2].game_supported_oid[3].oid = 0xC004;
_s_task_game.game_info[2].game_supported_oid[4].oid = 0xC005; _s_task_game.game_info[2].game_supported_oid[4].oid = 0xC005;
_s_task_game.game_info[2].game_supported_oid[5].oid = 0xC0FF; //错误码 _s_task_game.game_info[2].game_supported_oid[5].oid = 0xC0FF; //错误码
_s_task_game.game_info[2].game_supported_oid[5].yes_or_no = 0; _s_task_game.game_info[2].game_supported_oid[5].yes_or_no = 1;
_s_task_game.game_info[2].game_order = 1; _s_task_game.game_info[2].game_order = 1;
_s_task_game.game_info[2].game_timeout_seconds = 60; _s_task_game.game_info[2].game_timeout_seconds = 60;
_s_task_game.game_info[2].game_score = 0; _s_task_game.game_info[2].game_score = 0;
@ -109,6 +113,8 @@ void L3_task_game_init(void)
// 舒尔特方格3星 // 舒尔特方格3星
_s_task_game.game_info[1].game_oid = GAME_OID_SHERT_1; _s_task_game.game_info[1].game_oid = GAME_OID_SHERT_1;
_s_task_game.game_info[1].game_audio = &audio_game_shulte_1; _s_task_game.game_info[1].game_audio = &audio_game_shulte_1;
_s_task_game.game_info[1].game_supported_oid = pointbuf.shert_1;
_s_task_game.game_info[1].game_oid_num = shert_1_num;
_s_task_game.game_info[1].game_supported_oid[0].oid = 0x2201; _s_task_game.game_info[1].game_supported_oid[0].oid = 0x2201;
_s_task_game.game_info[1].game_supported_oid[1].oid = 0x2202; _s_task_game.game_info[1].game_supported_oid[1].oid = 0x2202;
_s_task_game.game_info[1].game_supported_oid[2].oid = 0x2203; _s_task_game.game_info[1].game_supported_oid[2].oid = 0x2203;
@ -135,7 +141,7 @@ void L3_task_game_init(void)
_s_task_game.game_info[1].game_supported_oid[23].oid = 0x2218; _s_task_game.game_info[1].game_supported_oid[23].oid = 0x2218;
_s_task_game.game_info[1].game_supported_oid[24].oid = 0x2219; _s_task_game.game_info[1].game_supported_oid[24].oid = 0x2219;
_s_task_game.game_info[1].game_supported_oid[25].oid = 0x22FF; //错误码 _s_task_game.game_info[1].game_supported_oid[25].oid = 0x22FF; //错误码
_s_task_game.game_info[1].game_supported_oid[25].yes_or_no = 0; _s_task_game.game_info[1].game_supported_oid[25].yes_or_no = 1;
_s_task_game.game_info[1].game_order = 1; _s_task_game.game_info[1].game_order = 1;
_s_task_game.game_info[1].game_timeout_seconds = 120; _s_task_game.game_info[1].game_timeout_seconds = 120;
_s_task_game.game_info[1].game_score = 0; _s_task_game.game_info[1].game_score = 0;
@ -143,6 +149,8 @@ void L3_task_game_init(void)
// 众里寻三3星 // 众里寻三3星
_s_task_game.game_info[3].game_oid = GAME_OID_ZLXS_4; _s_task_game.game_info[3].game_oid = GAME_OID_ZLXS_4;
_s_task_game.game_info[3].game_audio = &audio_game_zlxs_4; _s_task_game.game_info[3].game_audio = &audio_game_zlxs_4;
_s_task_game.game_info[3].game_supported_oid = pointbuf.zlxs_4;
_s_task_game.game_info[3].game_oid_num = zlxs_4_num;
_s_task_game.game_info[3].game_supported_oid[0].oid = 0x10FE; _s_task_game.game_info[3].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[3].game_order = 0; _s_task_game.game_info[3].game_order = 0;
_s_task_game.game_info[3].game_timeout_seconds = 60; _s_task_game.game_info[3].game_timeout_seconds = 60;
@ -150,6 +158,8 @@ void L3_task_game_init(void)
// 火眼金晶3星 // 火眼金晶3星
_s_task_game.game_info[4].game_oid = GAME_OID_HYJJ_3; _s_task_game.game_info[4].game_oid = GAME_OID_HYJJ_3;
_s_task_game.game_info[4].game_audio = &audio_game_hyjj_3; _s_task_game.game_info[4].game_audio = &audio_game_hyjj_3;
_s_task_game.game_info[4].game_supported_oid = pointbuf.hyjj_3;
_s_task_game.game_info[4].game_oid_num = hyjj_3_num;
_s_task_game.game_info[4].game_supported_oid[0].oid = 0x10FE; _s_task_game.game_info[4].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[4].game_order = 0; _s_task_game.game_info[4].game_order = 0;
_s_task_game.game_info[4].game_timeout_seconds = 60; _s_task_game.game_info[4].game_timeout_seconds = 60;
@ -157,6 +167,8 @@ void L3_task_game_init(void)
// 火眼金晶4星 // 火眼金晶4星
_s_task_game.game_info[5].game_oid = GAME_OID_HYJJ_4; _s_task_game.game_info[5].game_oid = GAME_OID_HYJJ_4;
_s_task_game.game_info[5].game_audio = &audio_game_hyjj_4; _s_task_game.game_info[5].game_audio = &audio_game_hyjj_4;
_s_task_game.game_info[5].game_supported_oid = pointbuf.hyjj_4;
_s_task_game.game_info[5].game_oid_num = hyjj_4_num;
_s_task_game.game_info[5].game_supported_oid[0].oid = 0x10FE; _s_task_game.game_info[5].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[5].game_order = 0; _s_task_game.game_info[5].game_order = 0;
_s_task_game.game_info[5].game_timeout_seconds = 60; _s_task_game.game_info[5].game_timeout_seconds = 60;
@ -164,6 +176,8 @@ void L3_task_game_init(void)
// 火眼金晶5星 // 火眼金晶5星
_s_task_game.game_info[6].game_oid = GAME_OID_HYJJ_5; _s_task_game.game_info[6].game_oid = GAME_OID_HYJJ_5;
_s_task_game.game_info[6].game_audio = &audio_game_hyjj_5; _s_task_game.game_info[6].game_audio = &audio_game_hyjj_5;
_s_task_game.game_info[0].game_supported_oid = pointbuf.hyjj_5;
_s_task_game.game_info[6].game_oid_num = hyjj_5_num;
_s_task_game.game_info[6].game_supported_oid[0].oid = 0x10FE; _s_task_game.game_info[6].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[6].game_order = 0; _s_task_game.game_info[6].game_order = 0;
_s_task_game.game_info[6].game_timeout_seconds = 60; _s_task_game.game_info[6].game_timeout_seconds = 60;
@ -171,6 +185,8 @@ void L3_task_game_init(void)
// 从小到大4星 // 从小到大4星
_s_task_game.game_info[7].game_oid = GAME_OID_CXDD_4; _s_task_game.game_info[7].game_oid = GAME_OID_CXDD_4;
_s_task_game.game_info[7].game_audio = &audio_game_cxdd_4; _s_task_game.game_info[7].game_audio = &audio_game_cxdd_4;
_s_task_game.game_info[7].game_supported_oid = pointbuf.cxdd_4;
_s_task_game.game_info[7].game_oid_num = cxdd_4_num;
_s_task_game.game_info[7].game_supported_oid[0].oid = 0x10FE; _s_task_game.game_info[7].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[7].game_order = 0; _s_task_game.game_info[7].game_order = 0;
_s_task_game.game_info[7].game_timeout_seconds = 60; _s_task_game.game_info[7].game_timeout_seconds = 60;
@ -178,6 +194,8 @@ void L3_task_game_init(void)
// 明察秋毫4星 // 明察秋毫4星
_s_task_game.game_info[8].game_oid = GAME_OID_MCQH_4; _s_task_game.game_info[8].game_oid = GAME_OID_MCQH_4;
_s_task_game.game_info[8].game_audio = &audio_game_mcqh_4; _s_task_game.game_info[8].game_audio = &audio_game_mcqh_4;
_s_task_game.game_info[8].game_supported_oid = pointbuf.mcqh_4;
_s_task_game.game_info[8].game_oid_num = mcqh_4_num;
_s_task_game.game_info[8].game_supported_oid[0].oid = 0x10FE; _s_task_game.game_info[8].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[8].game_order = 0; _s_task_game.game_info[8].game_order = 0;
_s_task_game.game_info[8].game_timeout_seconds = 60; _s_task_game.game_info[8].game_timeout_seconds = 60;
@ -185,6 +203,8 @@ void L3_task_game_init(void)
// 明察秋毫5星 // 明察秋毫5星
_s_task_game.game_info[9].game_oid = GAME_OID_MCQH_5; _s_task_game.game_info[9].game_oid = GAME_OID_MCQH_5;
_s_task_game.game_info[9].game_audio = &audio_game_mcqh_5; _s_task_game.game_info[9].game_audio = &audio_game_mcqh_5;
_s_task_game.game_info[9].game_supported_oid = pointbuf.mcqh_5;
_s_task_game.game_info[9].game_oid_num = mcqh_5_num;
_s_task_game.game_info[9].game_supported_oid[0].oid = 0x10FE; _s_task_game.game_info[9].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[9].game_order = 0; _s_task_game.game_info[9].game_order = 0;
_s_task_game.game_info[9].game_timeout_seconds = 60; _s_task_game.game_info[9].game_timeout_seconds = 60;
@ -192,6 +212,8 @@ void L3_task_game_init(void)
// 积木再现3星 // 积木再现3星
_s_task_game.game_info[10].game_oid = GAME_OID_JMZX_3; _s_task_game.game_info[10].game_oid = GAME_OID_JMZX_3;
_s_task_game.game_info[10].game_audio = &audio_game_jmzx_3; _s_task_game.game_info[10].game_audio = &audio_game_jmzx_3;
_s_task_game.game_info[10].game_supported_oid = pointbuf.jmzx_3;
_s_task_game.game_info[10].game_oid_num = jmzx_3_num;
_s_task_game.game_info[10].game_supported_oid[0].oid = 0x10FE; _s_task_game.game_info[10].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[10].game_order = 0; _s_task_game.game_info[10].game_order = 0;
_s_task_game.game_info[10].game_timeout_seconds = 60; _s_task_game.game_info[10].game_timeout_seconds = 60;
@ -199,6 +221,8 @@ void L3_task_game_init(void)
// 积木再现4星 // 积木再现4星
_s_task_game.game_info[11].game_oid = GAME_OID_JMZX_4; _s_task_game.game_info[11].game_oid = GAME_OID_JMZX_4;
_s_task_game.game_info[11].game_audio = &audio_game_jmzx_4; _s_task_game.game_info[11].game_audio = &audio_game_jmzx_4;
_s_task_game.game_info[11].game_supported_oid = pointbuf.jmzx_4;
_s_task_game.game_info[11].game_oid_num = jmzx_4_num;
_s_task_game.game_info[11].game_supported_oid[0].oid = 0x10FE; _s_task_game.game_info[11].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[11].game_order = 0; _s_task_game.game_info[11].game_order = 0;
_s_task_game.game_info[11].game_timeout_seconds = 60; _s_task_game.game_info[11].game_timeout_seconds = 60;
@ -206,6 +230,8 @@ void L3_task_game_init(void)
// 积木再现5星 // 积木再现5星
_s_task_game.game_info[12].game_oid = GAME_OID_JMZX_5; _s_task_game.game_info[12].game_oid = GAME_OID_JMZX_5;
_s_task_game.game_info[12].game_audio = &audio_game_jmzx_5; _s_task_game.game_info[12].game_audio = &audio_game_jmzx_5;
_s_task_game.game_info[12].game_supported_oid = pointbuf.jmzx_5;
_s_task_game.game_info[12].game_oid_num = jmzx_5_num;
_s_task_game.game_info[12].game_supported_oid[0].oid = 0x10FE; _s_task_game.game_info[12].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[12].game_order = 0; _s_task_game.game_info[12].game_order = 0;
_s_task_game.game_info[12].game_timeout_seconds = 60; _s_task_game.game_info[12].game_timeout_seconds = 60;
@ -213,6 +239,8 @@ void L3_task_game_init(void)
// 还原钟表1星 // 还原钟表1星
_s_task_game.game_info[13].game_oid = GAME_OID_HYZB_1; _s_task_game.game_info[13].game_oid = GAME_OID_HYZB_1;
_s_task_game.game_info[13].game_audio = &audio_game_hyzb_1; _s_task_game.game_info[13].game_audio = &audio_game_hyzb_1;
_s_task_game.game_info[13].game_supported_oid = pointbuf.hyzb_1;
_s_task_game.game_info[13].game_oid_num = hyzb_1_num;
_s_task_game.game_info[13].game_supported_oid[0].oid = 0x40FE; _s_task_game.game_info[13].game_supported_oid[0].oid = 0x40FE;
_s_task_game.game_info[13].game_order = 0; _s_task_game.game_info[13].game_order = 0;
_s_task_game.game_info[13].game_timeout_seconds = 60; _s_task_game.game_info[13].game_timeout_seconds = 60;
@ -220,6 +248,8 @@ void L3_task_game_init(void)
// 还原钟表2星 // 还原钟表2星
_s_task_game.game_info[14].game_oid = GAME_OID_HYZB_2; _s_task_game.game_info[14].game_oid = GAME_OID_HYZB_2;
_s_task_game.game_info[14].game_audio = &audio_game_hyzb_2; _s_task_game.game_info[14].game_audio = &audio_game_hyzb_2;
_s_task_game.game_info[14].game_supported_oid = pointbuf.hyzb_2;
_s_task_game.game_info[14].game_oid_num = hyzb_2_num;
_s_task_game.game_info[14].game_supported_oid[0].oid = 0x40FE; _s_task_game.game_info[14].game_supported_oid[0].oid = 0x40FE;
_s_task_game.game_info[14].game_order = 0; _s_task_game.game_info[14].game_order = 0;
_s_task_game.game_info[14].game_timeout_seconds = 60; _s_task_game.game_info[14].game_timeout_seconds = 60;
@ -227,6 +257,8 @@ void L3_task_game_init(void)
// 时间规划3星 // 时间规划3星
_s_task_game.game_info[15].game_oid = GAME_OID_SJGH_3; _s_task_game.game_info[15].game_oid = GAME_OID_SJGH_3;
_s_task_game.game_info[15].game_audio = &audio_game_sjgh_3; _s_task_game.game_info[15].game_audio = &audio_game_sjgh_3;
_s_task_game.game_info[15].game_supported_oid = pointbuf.sjgh_3;
_s_task_game.game_info[15].game_oid_num = sjgh_3_num;
_s_task_game.game_info[15].game_supported_oid[0].oid = 0x40FE; _s_task_game.game_info[15].game_supported_oid[0].oid = 0x40FE;
_s_task_game.game_info[15].game_order = 0; _s_task_game.game_info[15].game_order = 0;
_s_task_game.game_info[15].game_timeout_seconds = 60; _s_task_game.game_info[15].game_timeout_seconds = 60;
@ -234,6 +266,8 @@ void L3_task_game_init(void)
// 计算时间4星 // 计算时间4星
_s_task_game.game_info[16].game_oid = GAME_OID_JSSJ_4; _s_task_game.game_info[16].game_oid = GAME_OID_JSSJ_4;
_s_task_game.game_info[16].game_audio = &audio_game_jssj_4; _s_task_game.game_info[16].game_audio = &audio_game_jssj_4;
_s_task_game.game_info[16].game_supported_oid = pointbuf.jssj_4;
_s_task_game.game_info[16].game_oid_num = jssj_4_num;
_s_task_game.game_info[16].game_supported_oid[0].oid = 0x40FE; _s_task_game.game_info[16].game_supported_oid[0].oid = 0x40FE;
_s_task_game.game_info[16].game_order = 0; _s_task_game.game_info[16].game_order = 0;
_s_task_game.game_info[16].game_timeout_seconds = 60; _s_task_game.game_info[16].game_timeout_seconds = 60;
@ -241,6 +275,8 @@ void L3_task_game_init(void)
// 计算时间5星 // 计算时间5星
_s_task_game.game_info[17].game_oid = GAME_OID_JSSJ_5; _s_task_game.game_info[17].game_oid = GAME_OID_JSSJ_5;
_s_task_game.game_info[17].game_audio = &audio_game_jssj_5; _s_task_game.game_info[17].game_audio = &audio_game_jssj_5;
_s_task_game.game_info[17].game_supported_oid = pointbuf.jssj_5;
_s_task_game.game_info[17].game_oid_num = jssj_5_num;
_s_task_game.game_info[17].game_supported_oid[0].oid = 0x40FE; _s_task_game.game_info[17].game_supported_oid[0].oid = 0x40FE;
_s_task_game.game_info[17].game_order = 0; _s_task_game.game_info[17].game_order = 0;
_s_task_game.game_info[17].game_timeout_seconds = 60; _s_task_game.game_info[17].game_timeout_seconds = 60;
@ -320,7 +356,7 @@ void L3_task_game_handler(S_TASK_GAME *s)
s->eeror_times = 0; s->eeror_times = 0;
s->start_seconds = s_nos_tick.t_1s; s->start_seconds = s_nos_tick.t_1s;
s->timeover_flag = 0; s->timeover_flag = 0;
for (j = 0; j < game_supported_oid_max; j++) for (j = 0; j < s->game_info[s->game_info_index].game_oid_num; j++)
{ {
s->game_info[s->game_info_index].game_supported_oid[j].handled = 0; s->game_info[s->game_info_index].game_supported_oid[j].handled = 0;
} }
@ -340,7 +376,7 @@ void L3_task_game_handler(S_TASK_GAME *s)
TTSS_Task_step(D_task_GAME_PLAY) TTSS_Task_step(D_task_GAME_PLAY)
U8 i = 0,j = 0; U8 i = 0,j = 0;
U8 has_unhandled_point = 0; U8 has_unhandled_point = 0;
for (i = 0; i < game_supported_oid_max; i++) for (i = 0; i < s->game_info[s->game_info_index].game_oid_num; i++)
{ {
GAME_INF* g = &s->game_info[_s_task_game.game_info_index]; GAME_INF* g = &s->game_info[_s_task_game.game_info_index];
POINT_INFO* p = &s->game_info[_s_task_game.game_info_index].game_supported_oid[i]; POINT_INFO* p = &s->game_info[_s_task_game.game_info_index].game_supported_oid[i];
@ -350,7 +386,7 @@ void L3_task_game_handler(S_TASK_GAME *s)
} }
if (s->read_oid != p->oid && has_unhandled_point == 0 && g->game_order == 1) if (s->read_oid != p->oid && has_unhandled_point == 0 && g->game_order == 1)
{ {
if (p->yes_or_no == 1 && p->handled == 0) if (p->yes_or_no == 0 && p->handled == 0)
{ {
has_unhandled_point = 1; has_unhandled_point = 1;
} }
@ -358,7 +394,7 @@ void L3_task_game_handler(S_TASK_GAME *s)
else if(s->read_oid == p->oid) else if(s->read_oid == p->oid)
{ {
//错误码 或者 是正确码有序,但是存在未处理的点 //错误码 或者 是正确码有序,但是存在未处理的点
if (p->yes_or_no == 0 || (p->yes_or_no == 1 && g->game_order == 1 && has_unhandled_point == 1)) if (p->yes_or_no == 1 || (p->yes_or_no == 0 && g->game_order == 1 && has_unhandled_point == 1))
{ {
s->eeror_times++; s->eeror_times++;
L0_uart0_sendstr("eeror_times = "); L0_uart0_sendstr("eeror_times = ");
@ -394,10 +430,10 @@ void L3_task_game_handler(S_TASK_GAME *s)
TTSS_Task_step(D_task_GAME_COMPLETED) TTSS_Task_step(D_task_GAME_COMPLETED)
U8 completed = 1; //假设已完成 U8 completed = 1; //假设已完成
U8 i = 0; U8 i = 0;
for (i = 0; i < game_supported_oid_max; i++) for (i = 0; i < s->game_info[s->game_info_index].game_oid_num; i++)
{ {
POINT_INFO* p = &_s_task_game.game_info[_s_task_game.game_info_index].game_supported_oid[i]; POINT_INFO* p = &_s_task_game.game_info[_s_task_game.game_info_index].game_supported_oid[i];
if (p->oid != 0 && p->yes_or_no == 1 && p->handled == 0) if (p->oid != 0 && p->yes_or_no == 0 && p->handled == 0)
{ {
completed = 0; completed = 0;
break; break;

51
source/app/task_game.h

@ -19,22 +19,65 @@
#include "../bsp/bsp_WT2605B.h" #include "../bsp/bsp_WT2605B.h"
#define game_supported_oid_max 32 // #define game_supported_oid_max 32
#define game_num_max 5 #define game_num_max 20
#define zbt_1_num 5
#define zmg_1_num 6
#define shert_1_num 32
#define zlxs_4_num 1
#define hyjj_3_num 1
#define hyjj_4_num 1
#define hyjj_5_num 1
#define cxdd_4_num 1
#define mcqh_4_num 1
#define mcqh_5_num 1
#define jmzx_3_num 1
#define jmzx_4_num 1
#define jmzx_5_num 1
#define hyzb_1_num 1
#define hyzb_2_num 1
#define sjgh_3_num 1
#define jssj_4_num 1
#define jssj_5_num 1
typedef struct _point_info typedef struct _point_info
{ {
U16 oid; //点的oid值 U16 oid; //点的oid值
U8 yes_or_no; //0错误,1正确 U8 yes_or_no; //1错误,0正确
TS_SPEECH_AUDIO* point_audio; //点对应的音频 TS_SPEECH_AUDIO* point_audio; //点对应的音频
U8 handled; //游戏进行过程中是否已经被处理 0 未处理,1 已处理 U8 handled; //游戏进行过程中是否已经被处理 0 未处理,1 已处理
}POINT_INFO; }POINT_INFO;
typedef struct _point_buf
{
POINT_INFO zbt_1[zbt_1_num];
POINT_INFO zmg_1[zmg_1_num];
POINT_INFO shert_1[shert_1_num];
POINT_INFO zlxs_4[zlxs_4_num];
POINT_INFO hyjj_3[hyjj_3_num];
POINT_INFO hyjj_4[hyjj_4_num];
POINT_INFO hyjj_5[hyjj_5_num];
POINT_INFO cxdd_4[cxdd_4_num];
POINT_INFO mcqh_4[mcqh_4_num];
POINT_INFO mcqh_5[mcqh_5_num];
POINT_INFO jmzx_3[jmzx_3_num];
POINT_INFO jmzx_4[jmzx_4_num];
POINT_INFO jmzx_5[jmzx_5_num];
POINT_INFO hyzb_1[hyzb_1_num];
POINT_INFO hyzb_2[hyzb_2_num];
POINT_INFO sjgh_3[sjgh_3_num];
POINT_INFO jssj_4[jssj_4_num];
POINT_INFO jssj_5[jssj_5_num];
}POINT_BUF;
typedef struct game_info typedef struct game_info
{ {
U16 game_oid; //游戏oid U16 game_oid; //游戏oid
TS_SPEECH_AUDIO* game_audio; //游戏音频 TS_SPEECH_AUDIO* game_audio; //游戏音频
POINT_INFO game_supported_oid[game_supported_oid_max]; //游戏支持的point POINT_INFO* game_supported_oid; //游戏支持的point
U8 game_oid_num;
U8 game_order; //游戏顺序 0不排序,1排序 U8 game_order; //游戏顺序 0不排序,1排序
U16 game_timeout_seconds; //游戏超时时间(秒) U16 game_timeout_seconds; //游戏超时时间(秒)
U16 game_score; //游戏得分 U16 game_score; //游戏得分

Loading…
Cancel
Save