Advertisement
Myros27

Untitled

Apr 9th, 2024
16
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. define Vending -1577831321
  2. alias Tmp r0
  3. alias Tmp2 r1
  4. alias ItemHash r2
  5. alias Counter r3
  6. alias Ident r4
  7. alias OverflowItemLastChance r10
  8. alias HashRecipe r11
  9. alias StackQuant r12
  10. alias VendBlocking r13
  11. init:
  12. l Ident db ReferenceId
  13. s db Setting Ident
  14. sbn Vending Ident On 1
  15. sbn Vending Ident Lock 0
  16. move sp 0
  17. push 0
  18. brlt sp 512 -1
  19. move sp 0
  20. move OverflowItemLastChance 0
  21. loop:
  22. yield
  23. jal handleRequest
  24. jal updateInventory
  25. j loop
  26. handleRequest:
  27. l HashRecipe d0:0 Channel1
  28. l StackQuant d0:0 Channel2
  29. l VendBlocking d0:0 Channel6
  30. beqz HashRecipe ra
  31. beq VendBlocking Ident myJob
  32. bgtz VendBlocking ra
  33. beq OverflowItemLastChance HashRecipe tryGetJob
  34. mod Tmp2 HashRecipe 127
  35. add Tmp2 Tmp2 127
  36. mod Tmp2 Tmp2 127
  37. add Tmp2 Tmp2 1
  38. mul sp Tmp2 4
  39. pop r5
  40. lbns r5 Vending Ident r5 OccupantHash 3
  41. beq r5 HashRecipe tryGetJob
  42. pop r6
  43. lbns r6 Vending Ident r6 OccupantHash 3
  44. beq r6 HashRecipe tryGetJob
  45. pop r7
  46. lbns r7 Vending Ident r7 OccupantHash 3
  47. beq r7 HashRecipe tryGetJob
  48. pop r8
  49. lbns r8 Vending Ident r8 OccupantHash 3
  50. beq r8 HashRecipe tryGetJob
  51. j ra
  52. tryGetJob:
  53. s d0:0 Channel6 Ident
  54. j loop
  55. myJob:
  56. blez StackQuant finishJob
  57. move Counter 2
  58. myJobSearch:
  59. lbns Tmp Vending Ident Counter OccupantHash 3
  60. beq Tmp HashRecipe foundItem
  61. add Counter Counter 1
  62. bgt Counter 101 myJobSearch
  63. j unableToFinishJob
  64. foundItem:
  65. sub StackQuant StackQuant 1
  66. s d0:0 Channel2 StackQuant
  67. sbn Vending Ident RequestHash HashRecipe
  68. j loop
  69. finishJob:
  70. s d0:0 Channel0 0
  71. s d0:0 Channel1 0
  72. s d0:0 Channel3 0
  73. unableToFinishJob:
  74. s d0:0 Channel6 0
  75. move OverflowItemLastChance 0
  76. move sp 512
  77. clearLoop:
  78. pop Tmp2
  79. brne Tmp2 HashRecipe 2
  80. push 0
  81. bgtz sp clearLoop
  82. j ra
  83. updateInventory:
  84. rand Tmp
  85. mul Tmp Tmp 100
  86. floor Tmp Tmp
  87. add Tmp Tmp 2
  88. lbns ItemHash Vending Ident Tmp OccupantHash 3
  89. beqz ItemHash ra
  90. mod Tmp2 ItemHash 127
  91. add Tmp2 Tmp2 127
  92. mod Tmp2 Tmp2 127
  93. add Tmp2 Tmp2 1
  94. mul sp Tmp2 4
  95. pop r5
  96. pop r6
  97. pop r7
  98. pop r8
  99. beq r5 Tmp ra
  100. beq r6 Tmp ra
  101. beq r7 Tmp ra
  102. beq r8 Tmp ra
  103. brnez r5 4
  104. add sp sp 3
  105. push Tmp
  106. j ra
  107. brnez r6 4
  108. add sp sp 2
  109. push Tmp
  110. j ra
  111. brnez r7 4
  112. add sp sp 1
  113. push Tmp
  114. j ra
  115. brnez r8 3
  116. push Tmp
  117. j ra
  118. rand Tmp2
  119. mul Tmp2 Tmp2 4
  120. floor Tmp2 Tmp2
  121. add sp sp Tmp2
  122. add sp sp 1
  123. pop OverflowItemLastChance
  124. push Tmp
  125. j ra
  126.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement