Advertisement
fastman92

readGridrefDat

Nov 11th, 2011
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.10 KB | None | 0 0
  1. -0000002C ; Ins/Del : create/delete structure
  2. -0000002C ; D/A/* : create structure member (data/ascii/array)
  3. -0000002C ; N : rename structure or structure member
  4. -0000002C ; U : delete structure member
  5. -0000002C ; Use data definition commands to create local variables and function arguments.
  6. -0000002C ; Two special fields " r" and " s" represent return address and saved registers.
  7. -0000002C ; Frame size: 2C; Saved regs: 0; Purge: 0
  8. -0000002C ;
  9. -0000002C
  10. -0000002C esi_register dd ?
  11. -00000028 db ? ; undefined
  12. -00000027 db ? ; undefined
  13. -00000026 db ? ; undefined
  14. -00000025 gridArea_X_determinant db ?
  15. -00000024 gridArea_Y_determinant dd ?
  16. -00000020 artistName db 32 dup(?)
  17. +00000000 r db 4 dup(?)
  18. +00000004
  19. +00000004 ; end of stack variable
  20.  
  21. void __cdecl readGridrefDat()
  22. {
  23. char *line; // eax@1
  24. FILE *file1; // esi@1
  25. FILE *file0; // eax@1
  26. char *sourceString; // eax@4
  27. char *destinationString; // ecx@4
  28. char sourceCharacter; // dl@5
  29. BYTE gridArea_X_determinant; // [sp+7h] [bp-25h]@1
  30. int gridArea_Y_determinant; // [sp+8h] [bp-24h]@1
  31. char artistName[32]; // [sp+Ch] [bp-20h]@4
  32.  
  33. gridArea_X_determinant = 0;
  34. gridArea_Y_determinant = 0;
  35. chdirProgramDir(gta_empty_string);
  36. file0 = CFileMgr__Open("DATA\\GRIDREF.DAT", "rb");
  37. file1 = file0;
  38. for ( line = CFileMgr__getConfigLine(file0); line; line = CFileMgr__getConfigLine(file1) )
  39. {
  40. if ( *line != '#' )
  41. {
  42. if ( *line )
  43. {
  44. sscanf(line, "%c%d %s", &gridArea_X_determinant, &gridArea_Y_determinant, artistName);
  45. sourceString = sub_836C58(artistName);
  46. destinationString = gridrefArtistNames[gridArea_Y_determinant + 10 * gridArea_X_determinant - 651];// 10 * gridArea - 651 ; subtract 651 as equivalment of 65*10 ('A') + 1, cuz gridArea_Y_determinant starts from 1, not zero
  47. do
  48. {
  49. sourceCharacter = *sourceString++;
  50. *destinationString++ = sourceCharacter;
  51. }
  52. while ( sourceCharacter );
  53. }
  54. }
  55. }
  56. CFileMgr__CloseFile(file1);
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement