aboutsummaryrefslogtreecommitdiff
path: root/project/src/lib-lecode.c
diff options
context:
space:
mode:
authorWiimm <wiimm@wiimm.de>2022-11-11 15:41:45 +0100
committerWiimm <wiimm@wiimm.de>2022-11-11 15:41:45 +0100
commitf6b04f8a74242cc98a9dd511ace55fe3c905d937 (patch)
tree1044163089960a53c7216b204bc49c0b10d138a5 /project/src/lib-lecode.c
parentb1fcd305ebc1525df971f9d937e61fcbd386be67 (diff)
SZS v2.30a
Diffstat (limited to 'project/src/lib-lecode.c')
-rw-r--r--project/src/lib-lecode.c288
1 files changed, 173 insertions, 115 deletions
diff --git a/project/src/lib-lecode.c b/project/src/lib-lecode.c
index 2ff7377..f966669 100644
--- a/project/src/lib-lecode.c
+++ b/project/src/lib-lecode.c
@@ -489,7 +489,6 @@ const VarMap_t * SetupVarsLECODE()
{ "LE$STRING_LIST_ENABLED", LE_STRING_LIST_ENABLED },
{ "LE$STRING_SET_ENABLED", LE_STRING_SET_ENABLED },
- { "LE$TYPE_MARKERS_ENABLED",LE_TYPE_MARKERS_ENABLED },
{0,0}
};
@@ -872,10 +871,13 @@ ccp GetBuildLECODE ( mem_t lecode )
if ( !lecode.ptr || lecode.len < sizeof(le_binary_head_v4_t) )
return "?";
+ const u_sec_t creation_time = GetCTimeLECODE(lecode);
const le_binary_head_v4_t *head = (le_binary_head_v4_t*)lecode.ptr;
- return ntohl(head->version) < 4
+ return !creation_time
? PrintCircBuf("%u",ntohl(head->build_number))
- : PrintCircBuf("%u (%.10s)",ntohl(head->build_number),head->timestamp);
+ : PrintCircBuf("%u (%.10s)",
+ ntohl(head->build_number),
+ PrintTimeByFormat("%F %T %Z",creation_time) );
}
///////////////////////////////////////////////////////////////////////////////
@@ -892,26 +894,66 @@ ccp GetInfoLECODE ( mem_t lecode )
if ( !lecode.ptr || lecode.len < sizeof(le_binary_head_v4_t) )
return "?";
- const le_binary_head_v4_t *head = (le_binary_head_v4_t*)lecode.ptr;
- ccp region = head->region == 'P' ? "PAL"
- : head->region == 'E' ? "USA"
- : head->region == 'J' ? "JAP"
- : head->region == 'K' ? "KOR"
+ const le_binary_head_t *head = (le_binary_head_t*)lecode.ptr;
+
+ ccp region = head->v3.region == 'P' ? "PAL"
+ : head->v3.region == 'E' ? "USA"
+ : head->v3.region == 'J' ? "JAP"
+ : head->v3.region == 'K' ? "KOR"
: "?";
- ccp debug = head->debug == 'D' ? "/debug" : "";
+ ccp debug = head->v3.debug == 'D' ? "/debug" : "";
+ const u_sec_t creation_time = GetCTimeLECODE(lecode);
- return ntohl(head->version) < 4
- ? PrintCircBuf("%s%s v%u, build %u, %u bytes",
+ return creation_time
+ ? PrintCircBuf("%s%s v%u, build %u (%s), %u bytes",
region, debug,
- ntohl(head->version),
- ntohl(head->build_number),
- ntohl(head->file_size) )
- : PrintCircBuf("%s%s v%u, build %u (%s UTC), %u bytes",
+ ntohl(head->v3.version),
+ ntohl(head->v3.build_number),
+ PrintTimeByFormat("%F %T %Z",creation_time),
+ ntohl(head->v3.file_size) )
+ : PrintCircBuf("%s%s v%u, build %u, %u bytes",
region, debug,
- ntohl(head->version),
- ntohl(head->build_number),
- head->timestamp,
- ntohl(head->file_size) );
+ ntohl(head->v3.version),
+ ntohl(head->v3.build_number),
+ ntohl(head->v3.file_size) );
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+u_sec_t GetLecodeCTimeLEREG ( le_region_t reg )
+{
+ return GetCTimeLECODE(GetLecodeLEREG(reg));
+}
+
+//-----------------------------------------------------------------------------
+
+u_sec_t GetCTimeLECODE ( mem_t lecode )
+{
+ return lecode.len >= sizeof(le_binary_head_v5_t)
+ ? GetCTimeLeHead((le_binary_head_t*)lecode.ptr)
+ : 0;
+}
+
+//-----------------------------------------------------------------------------
+
+u_sec_t GetCTimeLeHead ( const le_binary_head_t *head )
+{
+ if (!head)
+ return 0;
+
+ const uint version = ntohl(head->v3.version);
+
+ if ( version >= 5 )
+ return ntohl(head->v5.creation_time);
+
+ if ( version >= 4 )
+ {
+ time_t tim;
+ ScanDateTime(&tim,0,head->v4.timestamp,false,false);
+ return tim;
+ }
+
+ return 0;
}
//
@@ -1654,6 +1696,7 @@ static void ApplyArena ( le_analyze_t * ana, const ctcode_arena_t * ca )
if ( ntohl(ana->cup_arena[idx]) == slot )
{
ana->cup_arena[idx] = htonl(prop);
+ ana->arena_applied = true;
break;
}
}
@@ -1672,11 +1715,14 @@ static void ApplyArena ( le_analyze_t * ana, const ctcode_arena_t * ca )
if ( ca->flags[a] & CT_ARENA_FLAGS_VALID )
{
- ana->flags[slot] = ca->flags[a] & LEFL__ALL;
+ ana->flags[slot] = ca->flags[a] & G_LEFL__ALL;
ana->arena_applied = true;
}
}
}
+
+ if (ana->arena_applied)
+ UpdateLecodeFlags(ana);
}
///////////////////////////////////////////////////////////////////////////////
@@ -1732,26 +1778,25 @@ enumError AnalyzeLEBinary
memset(ana,0,sizeof(*ana));
if ( !data
- || data_size < sizeof(le_binary_head_t)
+ || data_size < sizeof(le_binary_head_v3_t)
|| memcmp(data,LE_BINARY_MAGIC,4) )
{
return ERR_INVALID_DATA;
}
le_binary_head_t *head = (le_binary_head_t*)data;
- const uint file_size = ntohl(head->file_size);
+ const uint file_size = ntohl(head->v3.file_size);
if ( file_size > data_size )
return ERR_INVALID_DATA;
ana->valid = LE_HEAD_FOUND;
- ana->version = head->phase;
- ana->region = GetLEREG(head->region);
+ ana->region = GetLEREG(head->v3.region);
ana->data = data;
ana->data_size = data_size;
ana->head = head;
- ana->header_vers = ntohl(head->version);
+ ana->header_vers = ntohl(head->v3.version);
ana->end_of_data = (u8*)data + file_size;
- ana->flags_bits = ntohl(head->build_number) < 35 ? 8 : 16;
+ ana->flags_bits = ntohl(head->v3.build_number) < 35 ? 8 : 16;
ana->le_random_beg = MKW_LE_RANDOM_BEG;
ana->le_random_end = MKW_LE_RANDOM_END;
@@ -1761,13 +1806,13 @@ enumError AnalyzeLEBinary
case 4:
if ( ana->data_size > sizeof(le_binary_head_v4_t) )
{
- off_param = ntohl(ana->head_v4->off_param);
+ off_param = ntohl(ana->head->v4.off_param);
ana->header_size = sizeof(le_binary_head_v4_t);
- ana->le_random_beg = MKW_LE_RANDOM_BY_CUP;
+ ana->le_random_beg = MKW_LE_RANDOM_BY_CUP;
ana->valid |= LE_HEAD_VALID | LE_HEAD_KNOWN;
time_t tim;
- ScanDateTime(&tim,0,ana->head_v4->timestamp,false,0);
+ ScanDateTime(&tim,0,ana->head->v4.timestamp,false,false);
ana->creation_time = tim;
}
break;
@@ -1775,26 +1820,34 @@ enumError AnalyzeLEBinary
case 5:
if ( ana->data_size > sizeof(le_binary_head_v5_34_t) )
{
- off_param = ntohl(ana->head_v5->off_param);
- ana->szs_required = ntohl(ana->head_v5->szs_required);
- ana->edit_version = ntohl(ana->head_v5->edit_version);
- ana->header_size = ntohl(ana->head_v5->head_size);
- ana->creation_time = ntohl(ana->head_v5->creation_time);
- ana->edit_time = ntohl(ana->head_v5->edit_time);
+ off_param = ntohl(ana->head->v5.off_param);
+ ana->szs_required = ntohl(ana->head->v5.szs_required);
+ ana->edit_version = ntohl(ana->head->v5.edit_version);
+ ana->header_size = ntohl(ana->head->v5.head_size);
+ ana->creation_time = ntohl(ana->head->v5.creation_time);
+ ana->edit_time = ntohl(ana->head->v5.edit_time);
- if ( ana->header_size > offsetof(le_binary_head_v5_t,szs_recommended) )
- ana->szs_recommended = ntohl(ana->head_v5->szs_recommended);
-
- if ( ana->edit_version != 0x32303232 ) // first 4 bytes of "2022-10-23" => invalid
+ if ( ana->edit_version != 0x32303232 ) // if first 4 bytes of "2022-10-23" => invalid
+ {
ana->valid |= LE_HEAD_VALID | LE_HEAD_KNOWN;
+
+ if ( ana->header_size > offsetof(le_binary_head_v5_t,szs_recommended) )
+ {
+ ana->szs_recommended = ntohl(ana->head->v5.szs_recommended);
+ // if ( ana->szs_recommended >= 2300100 )
+ // {
+ // //?
+ // }
+ }
+ }
}
break;
default:
- if ( ana->header_vers > 5 && ana->data_size > sizeof(le_binary_head_t) )
+ if ( ana->header_vers > 5 && ana->data_size > sizeof(le_binary_head_v3_t) )
{
- off_param = ntohl(head->off_param);
- ana->header_size = ntohl(ana->head_v5->head_size);
+ off_param = ntohl(head->v3.off_param);
+ ana->header_size = ntohl(head->v5.head_size);
ana->valid |= LE_HEAD_VALID;
}
break;
@@ -1803,6 +1856,13 @@ enumError AnalyzeLEBinary
if ( GetEncodedVersion() >= ana->szs_required )
ana->valid |= LE_HEAD_VERSION;
+ snprintf(ana->identifier,sizeof(ana->identifier),
+ "v%u-b%02u-h%02u-%c%c",
+ ntohl(ana->head->v3.version),
+ ntohl(ana->head->v3.build_number),
+ ana->header_size,
+ tolower(ana->head->v3.debug),
+ tolower(ana->head->v3.region) );
//--- analyse parameters (prepare)
@@ -2065,8 +2125,7 @@ le_region_t GetLERegion ( const le_analyze_t *ana )
{
if (ana->valid)
{
- const le_binary_head_t *h = ana->head;
- switch (h->region)
+ switch (ana->head->v3.region)
{
case 'P': return LEREG_PAL;
case 'E': return LEREG_USA;
@@ -2169,25 +2228,27 @@ const le_usage_t * GetLEUsage ( const le_analyze_t *ana0, bool force_recalc )
for ( slot = LE_FIRST_CT_SLOT; slot < ana->usage_size; slot++ )
{
+ const le_flags_t flags = ana->flags[slot];
+ if (!flags)
+ continue;
+
if (IsLESlotUsed(ana,slot))
{
- const le_flags_t flags = ana->flags[slot];
-
- if ( flags & LEFL_ALIAS )
+ if ( flags & G_LEFL_ALIAS )
usage[slot] = LEU_S_ALIAS;
else if ( IsLEBattleSlot(ana,slot) )
usage[slot]
- = flags & LEFL_RND_HEAD ? LEU_S_ARENA_RND
- : flags & (LEFL_RND_GROUP|LEFL_HIDDEN) ? LEU_S_ARENA_HIDE
+ = flags & G_LEFL_RND_HEAD ? LEU_S_ARENA_RND
+ : flags & (G_LEFL_RND_GROUP|G_LEFL_HIDDEN) ? LEU_S_ARENA_HIDE
: LEU_S_ARENA;
else
usage[slot]
- = flags & LEFL_RND_HEAD ? LEU_S_TRACK_RND
- : flags & (LEFL_RND_GROUP|LEFL_HIDDEN) ? LEU_S_TRACK_HIDE
+ = flags & G_LEFL_RND_HEAD ? LEU_S_TRACK_RND
+ : flags & (G_LEFL_RND_GROUP|G_LEFL_HIDDEN) ? LEU_S_TRACK_HIDE
: LEU_S_TRACK;
}
- if ( ana->version > 1 || slot < 0xff
+ if ( ana->head->v3.phase > 1 || slot < 0xff
|| slot >= LE_FIRST_UPPER_CT_SLOT && slot <= LE_LAST_UPPER_CT_SLOT )
{
usage[slot] |= LEU_F_ONLINE;
@@ -2202,9 +2263,9 @@ const le_usage_t * GetLEUsage ( const le_analyze_t *ana0, bool force_recalc )
if (IsLESlotUsed(ana,slot))
{
const le_flags_t flags = ana->flags[slot];
- usage[slot] = flags & LEFL_ALIAS ? LEU_S_ALIAS
- : flags & LEFL_RND_HEAD ? LEU_S_ARENA_RND
- : flags & LEFL_RND_GROUP ? LEU_S_ARENA_HIDE
+ usage[slot] = flags & G_LEFL_ALIAS ? LEU_S_ALIAS
+ : flags & G_LEFL_RND_HEAD ? LEU_S_ARENA_RND
+ : flags & G_LEFL_RND_GROUP ? LEU_S_ARENA_HIDE
: LEU_S_ARENA;
}
}
@@ -2212,7 +2273,7 @@ const le_usage_t * GetLEUsage ( const le_analyze_t *ana0, bool force_recalc )
//--- override Network.random
- if ( ana->version == 1 )
+ if ( ana->head->v3.phase == 1 )
usage[0xff] = LEU_S_NETWORK|LEU_F_ONLINE;
return usage;
@@ -2399,7 +2460,7 @@ static ccp GetSlotInfo
static const char warn_list[] = " <!!";
const le_flags_t flags = ana->flags[tid];
- return flags & LEFL_ALIAS
+ return flags & G_LEFL_ALIAS
? PrintCircBuf("[%s->%4x %s,%s] ",
col->differ, TrackByAliasLE(prop,music),
col->reset, PrintLEFL(ana->flags_bits,flags,true) )
@@ -2481,7 +2542,7 @@ static void DumpLETracks
u16 *done = CALLOC(sizeof(*done),ana->n_slot);
DASSERT(done);
- if ( ana->version == 1 )
+ if ( ana->head->v3.phase == 1 )
{
uint max = ana->n_slot < LE_FIRST_UPPER_CT_SLOT
? ana->n_slot : LE_FIRST_UPPER_CT_SLOT;
@@ -2629,7 +2690,7 @@ static void DumpLETracks
else // if ( !done[i] )
{
const typeof(*ana->flags) flags = ana->flags ? ana->flags[i] : 0;
- if ( flags & LEFL_RND_GROUP )
+ if ( flags & G_LEFL_RND_GROUP )
{
n_group++;
max_viewed_slot = i;
@@ -2637,7 +2698,7 @@ static void DumpLETracks
else
{
n_unused++;
- if ( flags & LEFL_TEXTURE )
+ if ( flags & G_LEFL_TEXTURE )
max_viewed_slot = i;
}
}
@@ -2670,13 +2731,22 @@ static void DumpLETracks
n_group, n_group == 1 ? "" : "s",
col->reset );
- for ( i = 0; i < ana->n_slot; i++ )
- if ( !done[i] && IsRacingTrackLE(i) && ana->flags[i] & LEFL_RND_GROUP )
+ int prev = -1, line_count = 99;
+ for ( int i = 0; i <= max_viewed_slot; i++ )
+ {
+ if ( !done[i] && IsRacingTrackLE(i) && ana->flags[i] & G_LEFL_RND_GROUP )
{
+ if ( ++line_count > 4 || i != prev+1 )
+ {
+ fprintf(f,"\n%*sSlot %4d/dec :", indent,"", i );
+ line_count = 1;
+ }
done[i]++;
- fprintf(f,"%*sSlot %4d/dec : %3x%s\n",
- indent,"", i, i, GetSlotInfo(ana,i,col,CHECK_OFF,0));
+ fprintf(f," %3x%s", i, GetSlotInfo(ana,i,col,CHECK_OFF,0) );
+ prev = i;
}
+ }
+ putchar('\n');
}
//HexDump16(stdout,0,0,done,ana->n_slot*sizeof(*done));
@@ -2705,7 +2775,6 @@ static void DumpLETracks
{
if ( ++line_count > 4 || i != prev+1 )
{
-//DEL if ( i == prev+1 ) fputs("...",f);
fprintf(f,"\n%*sSlot %4d/dec :", indent,"", i );
line_count = 1;
}
@@ -2721,10 +2790,14 @@ static void DumpLETracks
first_unused_slot = LE_FIRST_CT_SLOT;
const int unused_slots = ana->n_slot - first_unused_slot;
if ( unused_slots > 0 )
- fprintf(f,"%*s > %u slot%s beginning with slot %u (%x/hex) are not used.\n",
- indent,"",
- unused_slots, unused_slots == 1 ? "" : "s",
- first_unused_slot, first_unused_slot );
+ {
+ if ( unused_slots > 1 )
+ fprintf(f,"%*s > %u slots beginning with slot %u (%x/hex) are not used.\n",
+ indent,"", unused_slots, first_unused_slot, first_unused_slot );
+ else
+ fprintf(f,"%*s > Slot %u (%x/hex) is not used.\n",
+ indent,"", first_unused_slot, first_unused_slot );
+ }
}
@@ -2751,11 +2824,10 @@ static void DumpLEUsageMap
if ( max_view > ana->usage_size )
max_view = ana->usage_size;
- #if 1
fprintf(f,"\n%*s%s" "Slot usage map for %u slots%s\n"
- "%*s" "%s: Arena%s, %s: Hidden Arena%s, %s: Random Arena%s, "
+ "%*s" "%s: Arena%s, %s: Hidden Arena%s, %s: Random Group Arena%s, "
"%s: LE-CODE random%s, %s: Alias%s,\n"
- "%*s" "%s: Track%s, %s: Hidden Track%s, %s: Random Track%s, "
+ "%*s" "%s: Track%s, %s: Hidden Track%s, %s: Random Group Track%s, "
"%s: Network%s, %s: Special%s, %s: unused%s.\n",
indent-2,"", col->heading, max_view, col->reset,
@@ -2773,32 +2845,6 @@ static void DumpLEUsageMap
GetLEUsageCharCol( LEU_S_SPECIAL, col,0 ), col->reset,
GetLEUsageCharCol( LEU_S_UNUSED, col,0 ), col->reset );
- #else
- fprintf(f,"\n%*s%s" "Slot usage map for %u slots%s\n"
- "%*s" "%s: Arena%s, %s: Hidden Arena%s, %s: Random Arena%s, "
- "%s: LE-CODE arena random%s,\n"
- "%*s" "%s: Track%s, %s: Hidden Track%s, %s: Random Track%s, "
- "%s: LE-CODE track random%s,\n"
- "%*s" "%s: Alias%s, %s: Network%s, %s: Special%s, %s: unused%s.\n",
-
- indent-2,"", col->heading, max_view, col->reset,
- indent,"",
- GetLEUsageCharCol( LEU_F_ONLINE | LEU_S_ARENA, col,0 ), col->reset,
- GetLEUsageCharCol( LEU_F_ONLINE | LEU_S_ARENA_HIDE, col,0 ), col->reset,
- GetLEUsageCharCol( LEU_F_ONLINE | LEU_S_ARENA_RND, col,0 ), col->reset,
- GetLEUsageCharCol( LEU_F_ONLINE | LEU_S_ARENA_LE_RND, col,0 ), col->reset,
- indent,"",
- GetLEUsageCharCol( LEU_F_ONLINE | LEU_S_TRACK, col,0 ), col->reset,
- GetLEUsageCharCol( LEU_F_ONLINE | LEU_S_TRACK_HIDE, col,0 ), col->reset,
- GetLEUsageCharCol( LEU_F_ONLINE | LEU_S_TRACK_RND, col,0 ), col->reset,
- GetLEUsageCharCol( LEU_F_ONLINE | LEU_S_TRACK_LE_RND, col,0 ), col->reset,
- indent,"",
- GetLEUsageCharCol( LEU_F_ONLINE | LEU_S_ALIAS, col,0 ), col->reset,
- GetLEUsageCharCol( LEU_F_ONLINE | LEU_S_NETWORK, col,0 ), col->reset,
- GetLEUsageCharCol( LEU_S_SPECIAL, col,0 ), col->reset,
- GetLEUsageCharCol( LEU_S_UNUSED, col,0 ), col->reset );
- #endif
-
uint slot;
ccp prev_col = 0;
for ( slot = 0; slot < max_view; slot++ )
@@ -2873,7 +2919,7 @@ void DumpLEAnalyse ( FILE *f, uint indent, const le_analyze_t *ana )
if ( ana->valid & LE_HEAD_VALID )
{
- const le_binary_head_t *h = ana->head;
+ const le_binary_head_v3_t *h = &ana->head->v3;
DASSERT(h);
fprintf(f,
"\n%*s%s" "File header:%s\n"
@@ -2929,7 +2975,7 @@ void DumpLEAnalyse ( FILE *f, uint indent, const le_analyze_t *ana )
fprintf(f,
"%*s" "Current SZS Tool: v%s\n", indent,"", BASE_VERSION );
- int fw = 0;
+ int fw = strlen(BASE_VERSION);
ccp required = 0, recommended = 0;
if (ana->szs_required)
@@ -2948,6 +2994,13 @@ void DumpLEAnalyse ( FILE *f, uint indent, const le_analyze_t *ana )
fw = len;
}
+ if (ana->edit_version)
+ {
+ int len = strlen(DecodeVersion(ana->edit_version));
+ if ( fw < len )
+ fw = len;
+ }
+
if (ana->szs_required)
{
const bool valid = GetEncodedVersion() >= ana->szs_required;
@@ -2979,6 +3032,10 @@ void DumpLEAnalyse ( FILE *f, uint indent, const le_analyze_t *ana )
indent,"", DecodeVersion(ana->edit_version) );
}
+ fputc('\n',f);
+ if ( brief_count > 0 )
+ return;
+
//--- parameters
@@ -2987,7 +3044,7 @@ void DumpLEAnalyse ( FILE *f, uint indent, const le_analyze_t *ana )
const le_binary_param_t *h = ana->param;
DASSERT(h);
fprintf(f,
- "\n%*s%s" "Parameters (LPAR):%s\n"
+ "%*s%s" "Parameters (LPAR):%s\n"
"%*s" "Magic: %.4s\n"
"%*s" "Version: %u\n"
"%*s" "Param size: %x/hex = %u bytes\n"
@@ -3258,7 +3315,7 @@ void DumpLEAnalyse ( FILE *f, uint indent, const le_analyze_t *ana )
if ( long_count > 0 )
DumpLETracks(f,indent,&col,ana);
- if ( verbose > 0 )
+ if ( verbose > 0 || long_count > 2 )
DumpLEUsageMap(f,indent,&col,ana);
fputc('\n',f);
@@ -3387,7 +3444,7 @@ enumError ApplyLEFile ( le_analyze_t * ana )
DASSERT(ana);
SetupArenasLEAnalyze(ana,false);
- const ctcode_t *ctcode = LoadLEFile(ana->version);
+ const ctcode_t *ctcode = LoadLEFile(ana->head->v3.phase);
return ctcode ? ApplyCTCODE(ana,ctcode) : ERR_ERROR;
}
@@ -3531,6 +3588,7 @@ enumError ApplyCTCODE ( le_analyze_t * ana, const ctcode_t * ctcode )
}
CalculateStatsLE(ana);
+ UpdateLecodeFlags(ana);
return ERR_OK;
}
@@ -3558,9 +3616,9 @@ bool DefineAliasLE ( le_analyze_t * ana, uint slot, uint alias )
}
const le_flags_t fl = ana->flags[alias];
- if ( !(fl & LEFL_ALIAS) )
+ if ( !(fl & G_LEFL_ALIAS) )
{
- ana->flags[slot] |= LEFL_ALIAS;
+ ana->flags[slot] |= G_LEFL_ALIAS;
ana->property[slot] = alias >> 8;
ana->music[slot] = alias & 0xff;
return true;
@@ -3647,27 +3705,27 @@ void UpdateLecodeFlags ( le_analyze_t * ana )
return;
- //--- calculate flags LEFL_BATTLE and LEFL_VERSUS, reset other flags
+ //--- calculate flags G_LEFL_BATTLE and G_LEFL_VERSUS, reset other flags
for ( int slot = 0; slot < ana->max_flags; slot++ )
{
- le_flags_t flags = ana->flags[slot] & LEFL__ALL;
+ le_flags_t flags = ana->flags[slot] & G_LEFL__ALL;
if ( slot < ana->max_property )
{
if ( slot < MKW_ARENA_END || slot >= MKW_LE_SLOT_BEG )
- flags |= IsMkwTrack(ana->property[slot]) ? LEFL_VERSUS : LEFL_BATTLE;
+ flags |= IsMkwTrack(ana->property[slot]) ? G_LEFL_VERSUS : G_LEFL_BATTLE;
}
ana->flags[slot] = flags;
}
- //--- define LEFL_RANDOM
+ //--- define G_LEFL_RANDOM
for ( int slot = LE_SLOT_RND_BEG; slot < LE_SLOT_RND_END; slot++ )
- ana->flags[slot] |= LEFL_RANDOM;
+ ana->flags[slot] |= G_LEFL_RANDOM;
- //--- calculate flags LEFL_CUP, LEFL_ORIG_CUP, LEFL_CUSTOM_CUP
+ //--- calculate flags G_LEFL_CUP, G_LEFL_ORIG_CUP, G_LEFL_CUSTOM_CUP
if ( ana->n_cup_track && ana->cup_track )
{
@@ -3679,8 +3737,8 @@ void UpdateLecodeFlags ( le_analyze_t * ana )
for ( int tr = 0; tr < max_tr; tr++ )
{
const uint slot = ntohl(*src++);
- if ( slot < ana->max_flags && ana->flags[slot] & (LEFL_VERSUS|LEFL_RANDOM) )
- ana->flags[slot] |= LEFL_CUP | ( tr < MKW_N_TRACKS ? LEFL_ORIG_CUP : LEFL_CUSTOM_CUP );
+ if ( slot < ana->max_flags && ana->flags[slot] & (G_LEFL_VERSUS|G_LEFL_RANDOM) )
+ ana->flags[slot] |= G_LEFL_CUP | ( tr < MKW_N_TRACKS ? G_LEFL_ORIG_CUP : G_LEFL_CUSTOM_CUP );
}
}
@@ -3691,8 +3749,8 @@ void UpdateLecodeFlags ( le_analyze_t * ana )
for ( int tr = 0; tr < max_tr; tr++ )
{
const uint slot = ntohl(*src++);
- if ( slot < ana->max_flags && ana->flags[slot] & (LEFL_BATTLE|LEFL_RANDOM) )
- ana->flags[slot] |= LEFL_CUP | ( tr < MKW_N_ARENAS ? LEFL_ORIG_CUP : LEFL_CUSTOM_CUP );
+ if ( slot < ana->max_flags && ana->flags[slot] & (G_LEFL_BATTLE|G_LEFL_RANDOM) )
+ ana->flags[slot] |= G_LEFL_CUP | ( tr < MKW_N_ARENAS ? G_LEFL_ORIG_CUP : G_LEFL_CUSTOM_CUP );
}
}
}