Skip to content

Instantly share code, notes, and snippets.

@ShadowOne333
Created November 27, 2019 20:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ShadowOne333/ca7b305b3e2fb82f332b8be968d548a7 to your computer and use it in GitHub Desktop.
Save ShadowOne333/ca7b305b3e2fb82f332b8be968d548a7 to your computer and use it in GitHub Desktop.
import ebpp
command adr32(a) "[{byte[0] a} {byte[1] a} {byte[2] a} 00]"
define LOWERCASE_PREFIX = 0
define UPPERCASE_PREFIX = 4
// Prints the item name with a prefix, based in the configured prefixed in the ITEM_PREFIX_TABLE
// Example: prefixed_itemname(1, LOWERCASE_PREFIX) could print something like "the Franklin badge"
// prefixed_itemname(3, UPPERCASE_PREFIX) could print something like "An Teddy bear"
command prefixed_itemname(item_number, prefix_case) {
// Store the contents of registers 0,1 on the stack
push(0)
push(1)
// Store the item number in register 0
load32c(0, item_number)
// Store the case choice in register 1
load32c(1, prefix_case)
// Call subroutine
call(_prefixed_itemname)
// Display the item name
itemname(item_number)
// Restore registers 0,1 back to its original state
pull(1)
pull(0)
}
_prefixed_itemname: {
// Store in register 0 the location of the appropriate 4-byte pointer in the item prefix table
mulc(0, 0, 8)
addc(0, 0, ITEM_PREFIX_TABLE)
// Add the contents of reigster 1 to decide the case of the prefix
add(0, 0, 1)
// Load into register 0 the pointer from the item prefix table
pload32(0, 0)
// Call the text at the pointer we just loaded from the item prefix table
reg_txtcall(0)
eob
}
_prefix_lower_the: "the " eob
_prefix_upper_the: "The " eob
command prefix_the {
adr32(_prefix_lower_the)
adr32(_prefix_upper_the)
}
_prefix_lower_an: "an " eob
_prefix_upper_an: "An " eob
command prefix_an {
adr32(_prefix_lower_an)
adr32(_prefix_upper_an)
}
_prefix_lower_a: "a " eob
_prefix_upper_a: "A " eob
command prefix_a {
adr32(_prefix_lower_a)
adr32(_prefix_upper_a)
}
_prefix_lower_some: "some " eob
_prefix_upper_some: "Some " eob
command prefix_some {
adr32(_prefix_lower_some)
adr32(_prefix_upper_some)
}
_prefix_null: eob
command prefix_null {
adr32(_prefix_null)
adr32(_prefix_null)
}
ITEM_PREFIX_TABLE: {
prefix_null // item 0
prefix_the // item 1
prefix_the // item 2
prefix_the // item 3
prefix_the // item 4
prefix_the // item 5
prefix_the // item 6
prefix_the // item 7
prefix_the // item 8
prefix_the // item 9
prefix_the // item 10
prefix_the // item 11
prefix_the // item 12
prefix_the // item 13
prefix_the // item 14
prefix_the // item 15
prefix_the // item 16
prefix_the // item 17
prefix_the // item 18
prefix_the // item 19
prefix_the // item 20
prefix_the // item 21
prefix_the // item 22
prefix_the // item 23
prefix_the // item 24
prefix_the // item 25
prefix_the // item 26
prefix_the // item 27
prefix_the // item 28
prefix_the // item 29
prefix_the // item 30
prefix_the // item 31
prefix_the // item 32
prefix_the // item 33
prefix_the // item 34
prefix_the // item 35
prefix_the // item 36
prefix_the // item 37
prefix_the // item 38
prefix_the // item 39
prefix_the // item 40
prefix_the // item 41
prefix_the // item 42
prefix_the // item 43
prefix_the // item 44
prefix_the // item 45
prefix_the // item 46
prefix_the // item 47
prefix_the // item 48
prefix_the // item 49
prefix_the // item 50
prefix_the // item 51
prefix_the // item 52
prefix_the // item 53
prefix_the // item 54
prefix_the // item 55
prefix_the // item 56
prefix_the // item 57
prefix_the // item 58
prefix_the // item 59
prefix_the // item 60
prefix_the // item 61
prefix_the // item 62
prefix_the // item 63
prefix_the // item 64
prefix_the // item 65
prefix_the // item 66
prefix_the // item 67
prefix_the // item 68
prefix_the // item 69
prefix_the // item 70
prefix_the // item 71
prefix_the // item 72
prefix_the // item 73
prefix_the // item 74
prefix_the // item 75
prefix_the // item 76
prefix_the // item 77
prefix_the // item 78
prefix_the // item 79
prefix_the // item 80
prefix_the // item 81
prefix_the // item 82
prefix_the // item 83
prefix_the // item 84
prefix_the // item 85
prefix_the // item 86
prefix_the // item 87
prefix_the // item 88
prefix_the // item 89
prefix_the // item 90
prefix_the // item 91
prefix_the // item 92
prefix_the // item 93
prefix_the // item 94
prefix_the // item 95
prefix_the // item 96
prefix_the // item 97
prefix_the // item 98
prefix_the // item 99
prefix_the // item 100
prefix_the // item 101
prefix_the // item 102
prefix_the // item 103
prefix_the // item 104
prefix_the // item 105
prefix_the // item 106
prefix_the // item 107
prefix_the // item 108
prefix_the // item 109
prefix_the // item 110
prefix_the // item 111
prefix_the // item 112
prefix_the // item 113
prefix_the // item 114
prefix_the // item 115
prefix_the // item 116
prefix_the // item 117
prefix_the // item 118
prefix_the // item 119
prefix_the // item 120
prefix_the // item 121
prefix_the // item 122
prefix_the // item 123
prefix_the // item 124
prefix_the // item 125
prefix_the // item 126
prefix_the // item 127
prefix_the // item 128
prefix_the // item 129
prefix_the // item 130
prefix_the // item 131
prefix_the // item 132
prefix_the // item 133
prefix_the // item 134
prefix_the // item 135
prefix_the // item 136
prefix_the // item 137
prefix_the // item 138
prefix_the // item 139
prefix_the // item 140
prefix_the // item 141
prefix_the // item 142
prefix_the // item 143
prefix_the // item 144
prefix_the // item 145
prefix_the // item 146
prefix_the // item 147
prefix_the // item 148
prefix_the // item 149
prefix_the // item 150
prefix_the // item 151
prefix_the // item 152
prefix_the // item 153
prefix_the // item 154
prefix_the // item 155
prefix_the // item 156
prefix_the // item 157
prefix_the // item 158
prefix_the // item 159
prefix_the // item 160
prefix_the // item 161
prefix_the // item 162
prefix_the // item 163
prefix_the // item 164
prefix_the // item 165
prefix_the // item 166
prefix_the // item 167
prefix_the // item 168
prefix_the // item 169
prefix_the // item 170
prefix_the // item 171
prefix_the // item 172
prefix_the // item 173
prefix_the // item 174
prefix_the // item 175
prefix_the // item 176
prefix_the // item 177
prefix_the // item 178
prefix_the // item 179
prefix_the // item 180
prefix_the // item 181
prefix_the // item 182
prefix_the // item 183
prefix_the // item 184
prefix_the // item 185
prefix_the // item 186
prefix_the // item 187
prefix_the // item 188
prefix_the // item 189
prefix_the // item 190
prefix_the // item 191
prefix_the // item 192
prefix_the // item 193
prefix_the // item 194
prefix_the // item 195
prefix_the // item 196
prefix_the // item 197
prefix_the // item 198
prefix_the // item 199
prefix_the // item 200
prefix_the // item 201
prefix_the // item 202
prefix_the // item 203
prefix_the // item 204
prefix_the // item 205
prefix_the // item 206
prefix_the // item 207
prefix_the // item 208
prefix_the // item 209
prefix_the // item 210
prefix_the // item 211
prefix_the // item 212
prefix_the // item 213
prefix_the // item 214
prefix_the // item 215
prefix_the // item 216
prefix_the // item 217
prefix_the // item 218
prefix_the // item 219
prefix_the // item 220
prefix_the // item 221
prefix_the // item 222
prefix_the // item 223
prefix_the // item 224
prefix_the // item 225
prefix_the // item 226
prefix_the // item 227
prefix_the // item 228
prefix_the // item 229
prefix_the // item 230
prefix_the // item 231
prefix_the // item 232
prefix_the // item 233
prefix_the // item 234
prefix_the // item 235
prefix_the // item 236
prefix_the // item 237
prefix_the // item 238
prefix_the // item 239
prefix_the // item 240
prefix_the // item 241
prefix_the // item 242
prefix_the // item 243
prefix_the // item 244
prefix_the // item 245
prefix_the // item 246
prefix_the // item 247
prefix_the // item 248
prefix_the // item 249
prefix_the // item 250
prefix_the // item 251
prefix_the // item 252
prefix_the // item 253
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment