From de24d9230d307f0ee1127c35ad334ee79b37853c Mon Sep 17 00:00:00 2001 From: Owlenuff Date: Wed, 2 Oct 2024 09:35:58 +0200 Subject: [PATCH] Document map Spiral Mountain --- include/enums.h | 22 +++++++++++++-- src/SM/ch/attacktutorial.c | 31 ++++++++++++--------- src/SM/ch/vegetables.c | 15 +++++----- src/SM/code_2990.c | 56 +++++++++++++++++++------------------- src/SM/code_4070.c | 26 +++++++++--------- src/SM/code_44D0.c | 10 +++---- 6 files changed, 91 insertions(+), 69 deletions(-) diff --git a/include/enums.h b/include/enums.h index 8fc7aabc..cd25fbab 100644 --- a/include/enums.h +++ b/include/enums.h @@ -2439,6 +2439,25 @@ enum bs_e BS_A5_WONDERWING_UNKA5 }; +enum sm_specific_flags { + SM_SPECIFIC_FLAG_1 = 0x1, + SM_SPECIFIC_FLAG_2, + SM_SPECIFIC_FLAG_3, + SM_SPECIFIC_FLAG_4, + SM_SPECIFIC_FLAG_5, + + SM_SPECIFIC_FLAG_7 = 0x7, + SM_SPECIFIC_FLAG_8, + SM_SPECIFIC_FLAG_9, + SM_SPECIFIC_FLAG_A, + + SM_SPECIFIC_FLAG_C = 0xC, + + SM_SPECIFIC_FLAG_E = 0xE, + SM_SPECIFIC_FLAG_F, + SM_SPECIFIC_FLAG_10 +}; + enum mm_specific_flags { MM_SPECIFIC_FLAG_0_CHIMPY_STUMP_RAISED, MM_SPECIFIC_FLAG_1_ORANGE_HAS_BEEN_COLLECTED, @@ -2487,11 +2506,10 @@ enum item_e ITEM_6_HOURGLASS, ITEM_7_SKULL_HOURGLASS, - ITEM_9_PROPELLOR = 0x9, ITEM_B_XMAS_TREE = 0xb, - ITEM_C_NOTE = 0xC, + ITEM_C_NOTE, ITEM_D_EGGS, ITEM_E_JIGGY, ITEM_F_RED_FEATHER, diff --git a/src/SM/ch/attacktutorial.c b/src/SM/ch/attacktutorial.c index da5f106f..086f45b2 100644 --- a/src/SM/ch/attacktutorial.c +++ b/src/SM/ch/attacktutorial.c @@ -85,12 +85,13 @@ void chAttackTutorial_setState(Actor * this, s32 arg1){ SM_func_803871FC(this, ++this->unk10_12); break; case 3://L8038742C - mapSpecificFlags_set(5,1); - mapSpecificFlags_set(0xC, 1); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_5, TRUE); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_C, TRUE); marker_despawn(this->marker); break; + case 4://L80387454 - mapSpecificFlags_set(0xC, 1); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_C, TRUE); if(!honeycombscore_get(HONEYCOMB_17_SM_COLIWOBBLE)){ this->unk10_12 = 3; this->unk38_31 = 1; @@ -129,18 +130,22 @@ void chAttackTutorial_update(Actor *this){ switch(this->state){ case 1://L80387610 - if(mapSpecificFlags_get(4)) + if (mapSpecificFlags_get(SM_SPECIFIC_FLAG_4)) { chAttackTutorial_setState(this, 5); - - if(func_803874C4() || volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)) + } + + if (func_803874C4() || volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)) { chAttackTutorial_setState(this, 4); - break; - case 2://L80387658 - if(mapSpecificFlags_get(7)){ - func_80387764(this->marker); - mapSpecificFlags_set(7,0); } break; + + case 2://L80387658 + if (mapSpecificFlags_get(SM_SPECIFIC_FLAG_7)) { + func_80387764(this->marker); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_7, FALSE); + } + break; + case 5://L80387680 break; }////L80387680 @@ -206,8 +211,8 @@ void func_80387764(ActorMarker * marker){ func_8028F94C(2, actor->unk1C); } //L80387848 - if (!mapSpecificFlags_get(3) && chmole_learnedAllSpiralMountainAbilities() && temp_a2) { - mapSpecificFlags_set(3, 1); + if (!mapSpecificFlags_get(SM_SPECIFIC_FLAG_3) && chmole_learnedAllSpiralMountainAbilities() && temp_a2) { + mapSpecificFlags_set(SM_SPECIFIC_FLAG_3, TRUE); sp34 = ASSET_E12_TEXT_BOTTLES_LEARNED_TUTORIAL_MOVES; }//L80387898 diff --git a/src/SM/ch/vegetables.c b/src/SM/ch/vegetables.c index 46a38f4d..f94ddc32 100644 --- a/src/SM/ch/vegetables.c +++ b/src/SM/ch/vegetables.c @@ -206,8 +206,7 @@ void func_80387C28(Actor * this){ func_802CA1CC(HONEYCOMB_17_SM_COLIWOBBLE); __spawnQueue_add_4((GenFunction_4) spawnQueue_bundle_f32, BUNDLE_1F_SM_EMPTY_HONEYCOMB, reinterpret_cast(s32, this->position_x), reinterpret_cast(s32, this->position_y), reinterpret_cast(s32, this->position_z)); }//L80387D64 - - timed_mapSpecificFlags_setTrue(1.5f, 7); + timed_mapSpecificFlags_setTrue(1.5f, SM_SPECIFIC_FLAG_7); actor_collisionOff(this); if(local->unkC != 3){ subaddie_set_state_with_direction(this, 3, 0.0f, 1); @@ -248,7 +247,7 @@ void func_80387E64(Actor *this){ void func_80387F00(Actor *this){ ChVeg *local = (ChVeg *)&this->local; - this->position_y += (mapSpecificFlags_get(0xC) || volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)) ? 120.0 : 180.0; + this->position_y += (mapSpecificFlags_get(SM_SPECIFIC_FLAG_C) || volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)) ? 120.0 : 180.0; local->unk0_x = this->position_x; local->unk0_y = this->position_y; local->unk0_z = this->position_z; @@ -331,9 +330,9 @@ void func_80388080(Actor *this){ switch (this->state) { case 1: //L803882B0 - if(mapSpecificFlags_get(0xC) || volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE) || this->unk10_12){ + if(mapSpecificFlags_get(SM_SPECIFIC_FLAG_C) || volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE) || this->unk10_12){ //L803882E4 - if(mapSpecificFlags_get(0xC) || volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)){ //L8038830C + if(mapSpecificFlags_get(SM_SPECIFIC_FLAG_C) || volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)){ //L8038830C this->unk1C_y += (local->unkC == 3)? 120.0 : 0.0; }else{//L80388350 this->unk1C_y += (local->unkC == 3)? 270.0 : 85.0; @@ -374,7 +373,7 @@ void func_80388080(Actor *this){ }else{//L80388520 if(local->unkC == 1){ this->actor_specific_1_f = 3.0f; - if(mapSpecificFlags_get(0xC) || volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)){//L80388554 + if(mapSpecificFlags_get(SM_SPECIFIC_FLAG_C) || volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)){//L80388554 if(!func_80329030(this, 0) && func_80329480(this)){ func_80328CEC(this, (s32)this->yaw, 0x78, 0xb4); this->unk38_0 = 1; @@ -398,7 +397,7 @@ void func_80388080(Actor *this){ func_80328CEC(this, (s32)this->yaw, 0x78, 0xB4); this->unk38_0 = 1; }//L80388698 - if(mapSpecificFlags_get(0xC) || (volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE) && func_803292E0(this))){ + if(mapSpecificFlags_get(SM_SPECIFIC_FLAG_C) || (volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE) && func_803292E0(this))){ this->yaw_ideal = func_80329784(this); }else{//L803886E4 if(randf() < 0.02){//D_8038B1D0){ @@ -429,7 +428,7 @@ void func_80388080(Actor *this){ func_80387E64(this); } this->actor_specific_1_f = 5.0f; - if(mapSpecificFlags_get(0xC) || (volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE))){ //L8038892C + if(mapSpecificFlags_get(SM_SPECIFIC_FLAG_C) || (volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE))){ //L8038892C if(!func_80387FA8(this, local, (s32)this->yaw, (s32)this->actor_specific_1_f)){ if(func_80329480(this)){ func_80328CEC(this, (s32)this->yaw, 0x78, 0xb4); diff --git a/src/SM/code_2990.c b/src/SM/code_2990.c index 940eaf46..45d0d341 100644 --- a/src/SM/code_2990.c +++ b/src/SM/code_2990.c @@ -101,7 +101,7 @@ void chsmmole_skipIntroTutorial(void){ ability_unlock(ABILITY_8_FLAP_FLIP); ability_unlock(ABILITY_5_CLIMB); chsmmole_setSpiralMountainAbilitiesAsUsed(); - mapSpecificFlags_set(3,1); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_3, TRUE); } /** * @brief If the player is talking to Intro Bottles for the first time, use the @@ -109,7 +109,7 @@ void chsmmole_skipIntroTutorial(void){ */ void chsmmole_setSpiralMountainStaticCamera(Actor *this){ - if(this->unkF4_8 == 1 && !mapSpecificFlags_get(1)){ + if(this->unkF4_8 == 1 && !mapSpecificFlags_get(SM_SPECIFIC_FLAG_1)){ timed_setStaticCameraToNode(0.0f, 0x12); } else{ //L80388F68 @@ -193,7 +193,7 @@ static void __chsmmole_additionalAbilityLearnActions(ActorMarker *marker, enum a timed_setStaticCameraToNode(0.0f, 2); break; case 4: - mapSpecificFlags_set(4,1); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_4, TRUE); break; case 5: timed_setStaticCameraToNode(0.0f, 0x12); @@ -211,8 +211,8 @@ void func_803892C8(ActorMarker *marker, enum asset_e text_id, s32 arg2){ Actor *actor; actor = marker_getActor(marker); - if(!mapSpecificFlags_get(3) && chmole_learnedAllSpiralMountainAbilities()){ - mapSpecificFlags_set(3, 1); + if(!mapSpecificFlags_get(SM_SPECIFIC_FLAG_3) && chmole_learnedAllSpiralMountainAbilities()){ + mapSpecificFlags_set(SM_SPECIFIC_FLAG_3, TRUE); gcdialog_showText(ASSET_E12_TEXT_BOTTLES_LEARNED_TUTORIAL_MOVES, 0xe, actor->position, actor->marker, func_803892C8, NULL); }//L8038933C else{ @@ -290,7 +290,7 @@ void chsmmole_80389610(Actor * this){ switch(this->unkF4_8){ case 1://L8038965C - if(mapSpecificFlags_get(1)){ + if(mapSpecificFlags_get(SM_SPECIFIC_FLAG_1)){ sp28 |= 1; if(fileProgressFlag_get(FILEPROG_DB_SKIPPED_TUTORIAL)){ sp2C = D_8038AFE4 + 0xE0A; //dialog index @@ -302,34 +302,34 @@ void chsmmole_80389610(Actor * this){ } else{//L803896E8 sp2C = smMoleTable[this->unkF4_8 -1].learn_text; - mapSpecificFlags_set(1,1); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_1, TRUE); } break; case 8://L80389720 - if(mapSpecificFlags_get(3)){ + if(mapSpecificFlags_get(SM_SPECIFIC_FLAG_3)){ if(fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)){ sp2C = ASSET_E37_TEXT_BOTTLES_STOP_WASTING_TIME_AFTER_FURNACE_FUN; sp28 |= 1; }else{//L80389758 - if(mapSpecificFlags_get(0xf)){ + if(mapSpecificFlags_get(SM_SPECIFIC_FLAG_F)){ sp2C = ASSET_E0F_TEXT_BOTTLES_STOP_WASTING_TIME_BEFORE_FURNACE_FUN; sp28 |= 1; }else{//L80389780 chsmmole_setSpiralMountainAbilitiesAsUsed(); sp2C = fileProgressFlag_get(FILEPROG_DB_SKIPPED_TUTORIAL) ? 0xe1e : 0xe13; - mapSpecificFlags_set(0xf, 1); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_F, TRUE); } } //L803897B4 - mapSpecificFlags_set(2, 1); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_2, TRUE); } else{//L803897C8 - if(mapSpecificFlags_get(2)){ + if(mapSpecificFlags_get(SM_SPECIFIC_FLAG_2)){ sp2C = smMoleTable[this->unkF4_8 -1].refresher_text; sp28 |= 1; } else{ sp2C = smMoleTable[this->unkF4_8 -1].learn_text; - mapSpecificFlags_set(2, 1); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_2, TRUE); } } @@ -340,7 +340,7 @@ void chsmmole_80389610(Actor * this){ || !ability_isUnlocked(ABILITY_C_ROLL) || !ability_isUnlocked(ABILITY_B_RATATAT_RAP) ){//L803898D4 - mapSpecificFlags_set(4, 1); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_4, TRUE); } else{//L803898E4 chsmmole_learnAbility(this, &sp2C, &sp28); @@ -352,7 +352,7 @@ void chsmmole_80389610(Actor * this){ || !ability_isUnlocked(ABILITY_7_FEATHERY_FLAP) || !ability_isUnlocked(ABILITY_8_FLAP_FLIP) ){//L803898D4 - mapSpecificFlags_set(0xE, 1); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_E, TRUE); } else{//L803898E4 chsmmole_learnAbility(this, &sp2C, &sp28); @@ -426,13 +426,13 @@ void chsmmole_Update(Actor * this){ } }//L80389AC8 if(chsmmole_learnedAnySpiralMountainAbilities()){ - mapSpecificFlags_set(1,1); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_1, TRUE); if(chmole_learnedAllSpiralMountainAbilities()){ - mapSpecificFlags_set(3, 1); - mapSpecificFlags_set(2, 1); - mapSpecificFlags_set(0xC, 1); - mapSpecificFlags_set(0xF, 1); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_3, TRUE); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_2, TRUE); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_C, TRUE); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_F, TRUE); } } }//L80389B20 @@ -453,13 +453,13 @@ void chsmmole_Update(Actor * this){ case 1://L80389BAC this->yaw_ideal = (f32)func_80329784(this); func_80328FB0(this, 4.0f); - if( (this->unkF4_8 == 1 && !mapSpecificFlags_get(1)) - || (this->unkF4_8 == 8 && !mapSpecificFlags_get(2)) - || (this->unkF4_8 == 8 && mapSpecificFlags_get(3) && !mapSpecificFlags_get(0xF)) + if( (this->unkF4_8 == 1 && !mapSpecificFlags_get(SM_SPECIFIC_FLAG_1)) + || (this->unkF4_8 == 8 && !mapSpecificFlags_get(SM_SPECIFIC_FLAG_2)) + || (this->unkF4_8 == 8 && mapSpecificFlags_get(SM_SPECIFIC_FLAG_3) && !mapSpecificFlags_get(SM_SPECIFIC_FLAG_F)) ){//L80389C50 if( ((ml_distance_vec3f(sp44, this->unk1C) < this->actor_specific_1_f) && func_8028F20C()) - || mapSpecificFlags_get(0x10) + || mapSpecificFlags_get(SM_SPECIFIC_FLAG_10) ){//L80389C8C if(func_80329530(this, 0x96)) func_8028F45C(9, this->position); @@ -506,7 +506,7 @@ void chsmmole_Update(Actor * this){ func_8030E2C4(this->unk44_31); }//L80389EA0 if(actor_animationIsAt(this, 0.9999f)){ - if(!mapSpecificFlags_get(1)){ + if(!mapSpecificFlags_get(SM_SPECIFIC_FLAG_1)){ chsmmole_80389610(this); } func_80388FA0(this, 3); @@ -519,7 +519,7 @@ void chsmmole_Update(Actor * this){ FUNC_8030E8B4(SFX_C5_TWINKLY_POP, 1.0f, 32000, this->position, 1250, 2500); }else if(actor_animationIsAt(this, 0.35f)){//L80389F78 - if(mapSpecificFlags_get(1)){ + if(mapSpecificFlags_get(SM_SPECIFIC_FLAG_1)){ chsmmole_80389610(this); } } @@ -551,8 +551,8 @@ void chsmmole_Update(Actor * this){ func_8030E878(SFX_6F_BANJO_HEADSCRATCH, randf2(1.35f, 1.5f), 6000, this->position, 1250.0f, 2500.0f); }//L8038A194 - if(mapSpecificFlags_get(5)){ - mapSpecificFlags_set(5,0); + if(mapSpecificFlags_get(SM_SPECIFIC_FLAG_5)){ + mapSpecificFlags_set(SM_SPECIFIC_FLAG_5, FALSE); func_80388FA0(this, 4); }//L8038A1B8 user_input = -1; diff --git a/src/SM/code_4070.c b/src/SM/code_4070.c index 8627496c..b021c381 100644 --- a/src/SM/code_4070.c +++ b/src/SM/code_4070.c @@ -37,19 +37,19 @@ void func_8038A4DC(Actor *this, s32 arg1){ player_getPosition(this->velocity); func_8028F918(0); if(ability_isUnlocked(ABILITY_7_FEATHERY_FLAP)){ - mapSpecificFlags_set(9,1); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_9, TRUE); }else if(ability_isUnlocked(ABILITY_A_HOLD_A_JUMP_HIGHER)){//L8038A540 - mapSpecificFlags_set(8,1); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_8, TRUE); }else{//L8038A560 func_8038A460(this); ability_unlock(ABILITY_A_HOLD_A_JUMP_HIGHER); gcdialog_showText(0xdf6, 0xe, this->unk1C, this->marker, func_8038A488, NULL); this->sm_4070.unk0 = 0xe1a; - mapSpecificFlags_set(8, 0); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_8, FALSE); } break; case 3://L8038A5B0 - mapSpecificFlags_set(5, 1); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_5, TRUE); break; }//L8038A5BC subaddie_set_state(this, arg1); @@ -84,7 +84,7 @@ void SM_func_8038A5D8(Actor *this){ if(fileProgressFlag_get(FILEPROG_DB_SKIPPED_TUTORIAL)){ marker_despawn(this->marker); }else{ - if(mapSpecificFlags_get(0xe)){ + if(mapSpecificFlags_get(SM_SPECIFIC_FLAG_E)){ func_8038A4DC(this, 2); } } @@ -92,35 +92,35 @@ void SM_func_8038A5D8(Actor *this){ case 2://L8038A6C8 if(!func_803114B0()){ - if(mapSpecificFlags_get(8)){ + if(mapSpecificFlags_get(SM_SPECIFIC_FLAG_8)){ func_8038A460(this); ability_unlock(ABILITY_7_FEATHERY_FLAP); gcdialog_showText(0xdf7, 0xa, this->unk1C, this->marker, func_8038A488, NULL); this->sm_4070.unk0 = 0xe1b; - mapSpecificFlags_set(8,0); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_8, FALSE); }//L8038A730 - if(mapSpecificFlags_get(9)){ + if(mapSpecificFlags_get(SM_SPECIFIC_FLAG_9)){ func_8038A460(this); ability_unlock(ABILITY_8_FLAP_FLIP); gcdialog_showText(0xdf8, 0xa, this->unk1C, this->marker, func_8038A488, NULL); this->sm_4070.unk0 = 0xe1c; - mapSpecificFlags_set(9,0); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_9, FALSE); }//L8038A794 - if(mapSpecificFlags_get(0xa)){ + if(mapSpecificFlags_get(SM_SPECIFIC_FLAG_A)){ func_8038A460(this); func_8028F94C(2, this->unk1C); - if(!mapSpecificFlags_get(3) && chmole_learnedAllSpiralMountainAbilities()){ - mapSpecificFlags_set(3,1); + if(!mapSpecificFlags_get(SM_SPECIFIC_FLAG_3) && chmole_learnedAllSpiralMountainAbilities()){ + mapSpecificFlags_set(SM_SPECIFIC_FLAG_3, TRUE); temp_a0 = 0xe12; }else{ temp_a0 = 0xdf9; } gcdialog_showText(temp_a0, 0xe, this->unk1C, this->marker, func_8038A488, NULL); - mapSpecificFlags_set(0xa,0); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_A, FALSE); this->sm_4070.unk0 = 0; } }//L8038A828 diff --git a/src/SM/code_44D0.c b/src/SM/code_44D0.c index 9607b6ba..56f94914 100644 --- a/src/SM/code_44D0.c +++ b/src/SM/code_44D0.c @@ -18,7 +18,7 @@ ActorInfo D_8038B0E0 = { 0x1F0, 0x3BD, 0, 0, NULL, /* .code */ void func_8038A8C0(ActorMarker *arg0){ - mapSpecificFlags_set(0x10, 0); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_10, FALSE); func_8028E6EC(2); func_8028F918(0); } @@ -44,13 +44,13 @@ void func_8038A8F8(Actor *this){ if(sp2C < (f32) this->unkF4_8) func_80388D48(); - if( !mapSpecificFlags_get(0x10) && sp2C < (f32) this->unkF4_8 && 1780.0f < func_8028E82C()){ - if( !mapSpecificFlags_get(2) - || (mapSpecificFlags_get(3) && !mapSpecificFlags_get(0xf)) + if( !mapSpecificFlags_get(SM_SPECIFIC_FLAG_10) && sp2C < (f32) this->unkF4_8 && 1780.0f < func_8028E82C()){ + if( !mapSpecificFlags_get(SM_SPECIFIC_FLAG_2) + || (mapSpecificFlags_get(SM_SPECIFIC_FLAG_3) && !mapSpecificFlags_get(SM_SPECIFIC_FLAG_F)) ){ //L8038AA54 this->yaw_ideal = ml_distance_vec3f(this->velocity, this->unk1C) / 150.0; func_8028F3D8(this->unk1C, this->yaw_ideal, func_8038A8C0, this->marker); - mapSpecificFlags_set(0x10, 1); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_10, TRUE); } } }