*/}}
Browse Source

Large file offset fix

YimingWu 9 hours ago
parent
commit
0458735af8
2 changed files with 13 additions and 10 deletions
  1. 7 4
      la_data.c
  2. 6 6
      la_util.h

+ 7 - 4
la_data.c

@@ -2558,7 +2558,7 @@ void la_ReadHyperData(laUDF *udf, void* HyperUserMem){
     h->TimeCreated.Second = la_ReadUByte(udf);
 }
 void la_PeekHyperUID(laUDF *udf, char* buf){
-    int pos=la_Tell(udf);
+    u64bit pos=la_Tell(udf);
     la_ReadString(udf, buf);
     la_Seek(udf, pos);
 }
@@ -3355,6 +3355,9 @@ int la_ExtractProp(laUDF *udf, laManagedUDF* mUDF, laPropPack *pp, void *ParentI
                                     if(Mode==LA_UDF_MODE_OVERWRITE && ItemType == LA_UDF_HYPER_ITEM){
                                         laUID uid; la_PeekHyperUID(udf, &uid.String);
                                         Instance = la_GetReadDBInstNUID(uid.String);
+                                        if(strSame(pc->Identifier,"our_pallette")){ 
+                                            printf("%d %s\n",Instance,uid.String);
+                                        }
                                         if(Instance){ la_ResetInstance(Instance, pc,IsItem); replaced=1; }
                                         else{ /*logPrint("[Note] Hyper2 item [%s] from property '%s' hasn't been loaded yet, will append.\n", uid.String, p->Identifier);*/ }
                                     }
@@ -3669,13 +3672,13 @@ int laExtractQuickRaw(FILE* fp, char* path, uint8_t** buf, size_t* size){
     /*udf->TotalRefs = */ la_ReadLong(udf);
     short NumSegments = la_ReadShort(udf);
     la_ReadLong(udf); //seek mark
-    off_t SeekRef = la_ReadPointer(udf);
+    u64bit SeekRef = la_ReadPointer(udf);
 
     la_Seek(udf,SeekRef);
 
     for(int i=0;i<NumSegments;i++){
         la_ReadString(udf,str);
-        int Seek = la_ReadLong(udf);
+        u64bit Seek = la_ReadLong(udf);
         if(strSame(str,path)){
             la_Seek(udf,Seek);
             la_ReadString(udf, str); // prop name
@@ -3818,7 +3821,7 @@ void la_ReadOwnHyperItems(laUDF *udf, laUDFRegistry* r){
     int Count, i;
     laUDFOwnHyperItem *ohi;
     Count = la_ReadLong(udf);
-    int Seek;
+    u64bit Seek;
     char name[256]; laUID uid;
     for (i = 0; i < Count; i++){
         la_ReadString(udf, uid.String);

+ 6 - 6
la_util.h

@@ -158,12 +158,12 @@ hi->TimeCreated.Year,hi->TimeCreated.Month,hi->TimeCreated.Day,hi->TimeCreated.H
 void la_glUniform1f(int location, float v0);
 #endif
 
-typedef double real;
-typedef unsigned long long u64bit;
-typedef unsigned int       u32bit;
-typedef unsigned short     u16bit;
-typedef unsigned short     ushort;
-typedef unsigned char      u8bit;
+typedef double   real;
+typedef uint64_t u64bit;
+typedef uint32_t u32bit;
+typedef uint16_t u16bit;
+typedef uint16_t ushort;
+typedef uint8_t  u8bit;
 
 typedef struct _laListSingle laListSingle;
 struct _laListSingle {