ThomasSpeedrunner

Act 3 Errors Macro References

Apr 26th, 2013
420
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. ; macro to declare a zone-ordered table
  2. ; entryLen is the length of each table entry, and zoneEntries is the number of entries per zone
  3. zoneOrderedTable macro entryLen,zoneEntries,{INTLABEL}
  4. __LABEL__ label *
  5. ; set some global variables
  6. zone_table_name := "__LABEL__"
  7. zone_table_addr := *
  8. zone_entry_len := entryLen
  9. zone_entries := zoneEntries
  10. zone_entries_left := 0
  11. cur_zone_id := 0
  12. cur_zone_str := "0"
  13. endm
  14.  
  15. zoneOrderedOffsetTable macro entryLen,zoneEntries,{INTLABEL}
  16. current_offset_table := __LABEL__
  17. __LABEL__ zoneOrderedTable entryLen,zoneEntries
  18. endm
  19.  
  20. ; macro to declare one or more entries in a zone-ordered table
  21. zoneTableEntry macro value
  22. if "value"<>""
  23. if zone_entries_left
  24. dc.ATTRIBUTE value
  25. zone_entries_left := zone_entries_left-1
  26. else
  27. !org zone_table_addr+zone_id_{cur_zone_str}*zone_entry_len*zone_entries
  28. dc.ATTRIBUTE value
  29. zone_entries_left := zone_entries-1
  30. cur_zone_id := cur_zone_id+1
  31. cur_zone_str := "\{cur_zone_id}"
  32. endif
  33. shift
  34. zoneTableEntry.ATTRIBUTE ALLARGS
  35. endif
  36. endm
  37.  
  38. ; macro to declare one or more BINCLUDE entries in a zone-ordered table
  39. zoneTableBinEntry macro numEntries,path
  40. if zone_entries_left
  41. BINCLUDE path
  42. zone_entries_left := zone_entries_left-numEntries
  43. else
  44. !org zone_table_addr+zone_id_{cur_zone_str}*zone_entry_len*zone_entries
  45. BINCLUDE path
  46. zone_entries_left := zone_entries-numEntries
  47. cur_zone_id := cur_zone_id+1
  48. cur_zone_str := "\{cur_zone_id}"
  49. endif
  50. endm
Advertisement
Add Comment
Please, Sign In to add comment