ThatTrueStruggle

p4g_all.bms

Jan 28th, 2016
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. get ext extension
  2. if ext == "amd"
  3. callfunction AMD
  4. elif ext == "pac"
  5. callfunction PAC
  6. elif ext == "arc"
  7. callfunction PAC
  8. elif ext == "bin"
  9. callfunction BIN
  10. else
  11. print "Not a supported file format! Make sure the extension is correct!"
  12. endif
  13.  
  14. startfunction AMD
  15. idstring "CHNK"
  16. get FileCount long
  17. idstring "MODEL_DATA"
  18. get NULL long
  19. get UNK long
  20. get NULL short
  21. for i = 0 < FileCount
  22. get SIZE long
  23. savepos OFFSET
  24. get NAME basename
  25. string NAME += ".gmo"
  26. log NAME OFFSET SIZE
  27. math OFFSET + SIZE
  28. goto OFFSET
  29. next i
  30. endfunction
  31.  
  32. startfunction PAC
  33. goto 0
  34. get FileCount long
  35. for i = 0 < FileCount
  36. getdstring NAME 0x20
  37. get SIZE long
  38. savepos OFFSET
  39. log NAME OFFSET SIZE
  40. math OFFSET + SIZE
  41. goto OFFSET
  42. next i
  43. endfunction
  44.  
  45. startfunction BIN
  46. get Identifier long
  47. if Identifier == 0x64
  48. callfunction PSCPersonaBasic
  49. else // not a PSCPersonaBasic.bin
  50. goto 0
  51. get FILENAME string
  52. strlen FILENAMESZ FILENAME
  53. if FILENAMESZ > 0 // old persona bin
  54. callfunction OLDPersonaBin
  55. else // newest bin type
  56. callfunction PAC
  57. endif
  58. endfunction
  59.  
  60. startfunction PSCPersonaBasic
  61. goto 4
  62. get FileCount long
  63. for i = 0 < FileCount
  64. get OFFSET long
  65. get NAME basename
  66. string NAME += OFFSET
  67. get SIZE long
  68. log NAME OFFSET SIZE
  69. next i
  70. endfunction
  71.  
  72. startfunction OLDPersonaBin
  73. goto 0
  74. for
  75. get NAME string
  76. do
  77. get NULL byte
  78. while NULL == 0
  79. savepos OFFSET
  80. math OFFSET - 1
  81. goto OFFSET
  82. get SIZE long
  83. savepos OFFSET
  84. log NAME OFFSET SIZE
  85. math OFFSET + SIZE
  86. goto OFFSET
  87. next
  88. endfunction
Advertisement
Add Comment
Please, Sign In to add comment