Review lipsReadV1

This commit is contained in:
Alexander Batalov 2022-06-11 22:33:43 +03:00
parent c10f0e5caf
commit 2f03d653fc
1 changed files with 35 additions and 33 deletions

View File

@ -177,44 +177,46 @@ int lipsStart()
} }
// 0x47AD98 // 0x47AD98
int lipsReadV1(LipsData* a1, File* stream) int lipsReadV1(LipsData* lipsData, File* stream)
{ {
int field_C; int sound;
int field_14; int field_14;
int field_18; int phonemes;
int field_30; int markers;
if (fileReadInt32(stream, &(a1->version)) == -1) return -1; if (fileReadInt32(stream, &(lipsData->version)) == -1) return -1;
if (fileReadInt32(stream, &(a1->field_4)) == -1) return -1; if (fileReadInt32(stream, &(lipsData->field_4)) == -1) return -1;
if (fileReadInt32(stream, &(a1->flags)) == -1) return -1; if (fileReadInt32(stream, &(lipsData->flags)) == -1) return -1;
if (fileReadInt32(stream, &(field_C)) == -1) return -1; if (fileReadInt32(stream, &(sound)) == -1) return -1;
if (fileReadInt32(stream, &(a1->field_10)) == -1) return -1; if (fileReadInt32(stream, &(lipsData->field_10)) == -1) return -1;
if (fileReadInt32(stream, &(field_14)) == -1) return -1; if (fileReadInt32(stream, &(field_14)) == -1) return -1;
if (fileReadInt32(stream, &(field_18)) == -1) return -1; if (fileReadInt32(stream, &(phonemes)) == -1) return -1;
if (fileReadInt32(stream, &(a1->field_1C)) == -1) return -1; if (fileReadInt32(stream, &(lipsData->field_1C)) == -1) return -1;
if (fileReadInt32(stream, &(a1->field_20)) == -1) return -1; if (fileReadInt32(stream, &(lipsData->field_20)) == -1) return -1;
if (fileReadInt32(stream, &(a1->field_24)) == -1) return -1; if (fileReadInt32(stream, &(lipsData->field_24)) == -1) return -1;
if (fileReadInt32(stream, &(a1->field_28)) == -1) return -1; if (fileReadInt32(stream, &(lipsData->field_28)) == -1) return -1;
if (fileReadInt32(stream, &(a1->field_2C)) == -1) return -1; if (fileReadInt32(stream, &(lipsData->field_2C)) == -1) return -1;
if (fileReadInt32(stream, &(field_30)) == -1) return -1; if (fileReadInt32(stream, &(markers)) == -1) return -1;
if (fileReadInt32(stream, &(a1->field_34)) == -1) return -1; if (fileReadInt32(stream, &(lipsData->field_34)) == -1) return -1;
if (fileReadInt32(stream, &(a1->field_38)) == -1) return -1; if (fileReadInt32(stream, &(lipsData->field_38)) == -1) return -1;
if (fileReadInt32(stream, &(a1->field_3C)) == -1) return -1; if (fileReadInt32(stream, &(lipsData->field_3C)) == -1) return -1;
if (fileReadInt32(stream, &(a1->field_40)) == -1) return -1; if (fileReadInt32(stream, &(lipsData->field_40)) == -1) return -1;
if (fileReadInt32(stream, &(a1->field_44)) == -1) return -1; if (fileReadInt32(stream, &(lipsData->field_44)) == -1) return -1;
if (fileReadInt32(stream, &(a1->field_48)) == -1) return -1; if (fileReadInt32(stream, &(lipsData->field_48)) == -1) return -1;
if (fileReadInt32(stream, &(a1->field_4C)) == -1) return -1; if (fileReadInt32(stream, &(lipsData->field_4C)) == -1) return -1;
if (fileReadFixedLengthString(stream, a1->field_50, 8) == -1) return -1; if (fileReadFixedLengthString(stream, lipsData->field_50, 8) == -1) return -1;
if (fileReadFixedLengthString(stream, a1->field_58, 4) == -1) return -1; if (fileReadFixedLengthString(stream, lipsData->field_58, 4) == -1) return -1;
if (fileReadFixedLengthString(stream, a1->field_5C, 4) == -1) return -1; if (fileReadFixedLengthString(stream, lipsData->field_5C, 4) == -1) return -1;
if (fileReadFixedLengthString(stream, a1->field_60, 4) == -1) return -1; if (fileReadFixedLengthString(stream, lipsData->field_60, 4) == -1) return -1;
if (fileReadFixedLengthString(stream, a1->field_64, 260) == -1) return -1; if (fileReadFixedLengthString(stream, lipsData->field_64, 260) == -1) return -1;
// TODO: What for? // NOTE: Original code is different. For unknown reason it assigns values
a1->sound = (Sound*)field_C; // from file (integers) and treat them as pointers, which is obviously wrong
a1->field_14 = (void*)field_14; // is in this case.
a1->phonemes = (unsigned char*)field_18; lipsData->sound = NULL;
a1->markers = (SpeechMarker*)field_30; lipsData->field_14 = NULL;
lipsData->phonemes = NULL;
lipsData->markers = NULL;
return 0; return 0;
} }