Skip to content

Commit

Permalink
Add achievement tasks and world map controls (#544)
Browse files Browse the repository at this point in the history
* Fix zamorak monk robe drop ids

* Start adding main and tab interfaces

* Add string scripts to command

* Fix sending interface visibility component ids

* Change sprite dump directory

* Add task pinning

* Add struct configs

* Add quest configs

* Add manual server side fix for #540

* More manual server side fixes for #540

* Add all quest varbits from cs2 3227

* Add combat summoning level support

* Add boolean support to var command

* Filter task tab by task requirements

* Fix struct ids

* Add all task varbits

* Add first task

* Add task popup, display completed/total tasks, wipe pinned task on ok

* Add task complete messages, explorer jack and ring reward

* Extract task looping

* Add message wrap around

* Rename bot variables

* Add boolean support to script command

* Add initial explorer jack task

* Add task set filtering

* Fix quest complete checks

* Check overall progress dynamically

* Start adding lumbridge beginner tasks

* Add remaining lumbridge beginner tasks

* Add experience lamp dialogue and antique lamp

* Start adding task unit tests

* Fix using spells on magic dummy

* Add more integration tests, fix ellis tanning

* Add shop buy and sell events

* Add tests for remaining tasks

* Fix area's not including all levels

* Fix wizards tower top floor level

* Add world map functionality

* Add task hint world map marking and fix tab pinning

* Show no tasks when run out

* Fix invalid inject code

* Fix missing font defs

* Fix hitpoint test

* Fix npcs messing with tests

* Add explorer jack item rewards
  • Loading branch information
GregHib authored Jun 28, 2024
1 parent 5f7a2a0 commit 92fcaef
Show file tree
Hide file tree
Showing 96 changed files with 5,862 additions and 205 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -114,4 +114,8 @@ data class QuestDefinition(
result = 31 * result + (extras?.hashCode() ?: 0)
return result
}

companion object {
val EMPTY = QuestDefinition()
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package world.gregs.voidps.cache.config.decoder

import world.gregs.voidps.buffer.read.Reader
import world.gregs.voidps.cache.Cache
import world.gregs.voidps.cache.Config.STRUCTS
import world.gregs.voidps.cache.config.ConfigDecoder
import world.gregs.voidps.cache.config.data.StructDefinition
Expand All @@ -12,6 +13,44 @@ class StructDecoder(

override fun create(size: Int) = Array(size) { StructDefinition(it) }


override fun load(cache: Cache): Array<StructDefinition> {
val definitions = super.load(cache)
// Manually fix values see https://github.com/GregHib/void/issues/540
var extras = definitions[1330].extras as MutableMap<String, Any>
extras["1296"] = 3
extras["1297"] = 19
extras["1298"] = 2
extras["1299"] = 37
extras = definitions[1337].extras as MutableMap<String, Any>
extras["1294"] = 62
extras["1295"] = 8
extras["1296"] = 14
extras["1297"] = 13
extras["1298"] = 13
extras["1299"] = 10
extras = definitions[1342].extras as MutableMap<String, Any>
extras["1294"] = 62
extras["1295"] = 13
extras["1296"] = 12
extras["1297"] = 56
extras = definitions[1450].extras as MutableMap<String, Any>
extras["1298"] = 2
extras["1299"] = 75
extras["1300"] = 20
extras["1301"] = 65
extras = definitions[1346].extras as MutableMap<String, Any>
extras["1294"] = 13
extras["1295"] = 60
extras = definitions[1649].extras as MutableMap<String, Any>
extras["1296"] = 10
extras["1297"] = 17
extras = definitions[1658].extras as MutableMap<String, Any>
extras["1296"] = 12
extras["1297"] = 50
return definitions
}

override fun StructDefinition.read(opcode: Int, buffer: Reader) {
if (opcode == 249) {
readParameters(buffer, parameters)
Expand Down
4 changes: 3 additions & 1 deletion data/definitions/animations.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1696,4 +1696,6 @@ gecko_attack: 7207
gecko_death: 7205
wolves_hit: 6557
wolves_attack: 6559
wolves_death: 6558
wolves_death: 6558
run_replenish: 9988
play_organ: 3675
16 changes: 14 additions & 2 deletions data/definitions/enums.yml
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,18 @@ npc_contact_structs: 869
dungeoneering_rewards: 3016
dungeoneering_rewards_members: 3015
ring_of_kingship_classes: 3088
achievements_structs: 3483
achievement_sprites: 3492
task_area_start_indices: 3482
task_structs: 3483
task_area_first_ids: 3484
task_distraction_and_diversions: 3485
task_area_names: 3487
task_difficulties: 3488
task_set_dropdown_interfaces: 3489
task_set_dropdown_sprite_interfaces: 3490
task_set_dropdown_sprites: 3491
task_difficulty_sprites: 3492
task_summary_interfaces: 3493
task_set_structs: 3494
task_set_sprites: 3495
task_sprites: 3492
clan_wars_arenas: 1604
3 changes: 2 additions & 1 deletion data/definitions/graphics.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1485,4 +1485,5 @@ burrow_dust: 571
tele_other: 343
tele_other_receive:
id: 342
height: 52
height: 52
run_replenish: 1733
6 changes: 5 additions & 1 deletion data/definitions/interface-types.yml
Original file line number Diff line number Diff line change
Expand Up @@ -142,4 +142,8 @@ full_screen:

skill_creation:
parent: dialogue_skill_creation
index: 4
index: 4

task_overlay:
fixedIndex: 20
resizeIndex: 79
74 changes: 72 additions & 2 deletions data/definitions/interfaces.yml
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,37 @@ dialogue_double_obj_box:
dialogue_garden_quiz:
id: 133
type: dialogue_box
skill_stat_advance: 134
skill_stat_advance:
id: 134
type: main_screen
components:
confirm: 2
close: 29
attack: 30
strength: 31
defence: 32
ranged: 33
prayer: 34
constitution: 35
magic: 36
agility: 37
herblore: 38
thieving: 39
crafting: 40
fletching: 41
mining: 42
smithing: 43
fishing: 44
firemaking: 45
cooking: 46
woodcutting: 47
runecrafting: 48
slayer: 49
hunter: 50
farming: 51
construction: 52
summoning: 53
dungeoneering: 54
dialogue_chat_both:
id: 136
type: dialogue_box
Expand Down Expand Up @@ -2156,6 +2186,12 @@ world_map:
type: full_screen
components:
close: 44
order: 54
marker: 42
key_list:
id: 49
options:
Select: 0
chat_model_text: 757
canoe_travel:
id: 758
Expand Down Expand Up @@ -2319,6 +2355,29 @@ skill_creation_amount:
task_list:
id: 917
type: main_screen
components:
area_lumbridge_draynor: 119
area_varrock: 121
area_falador: 123
area_seers_village: 125
area_ardougne: 127
area_karamja: 129
area_fremennik: 131
area_dnd_activities: 147
filter_sets: 110
filter_done: 102
toggle_popups: 136
pin: 40
hint_1: 2
hint_2: 4
hint_3: 6
hint_4: 8
hint_5: 10
tasks:
id: 94
options:
Summary: 0
Pin: 1
dialogue_make_amount:
id: 944
type: dialogue_box
Expand Down Expand Up @@ -2528,6 +2587,11 @@ character_creation:
Select: 0
choose_colour: 102
confirm: 117
task_popup:
id: 1055
type: task_overlay
components:
details: 2
task_system:
id: 1056
type: task_system_tab
Expand All @@ -2540,9 +2604,15 @@ task_system:
task_5: 157
task_6: 162
task_list: 102
dont_show: 172
dont_show: 173
close_hint: 174
hints: 36
summary_overlay: 122
message_overlay: 171
ok: 130
hint_1: 77
hint_2: 79
hint_3: 81
warriors_guild: 1057
fade_out:
id: 120
Expand Down
3 changes: 2 additions & 1 deletion data/definitions/jingles.yml
Original file line number Diff line number Diff line change
Expand Up @@ -176,4 +176,5 @@ soul_wars_loss: 379
soul_wars_win: 380
level_up_dungeoneering: 416
level_up_dungeoneering_unlock: 417
pyramid_plunder_snake_charming: 417
pyramid_plunder_snake_charming: 417
ambient_church_happy: 72
3 changes: 2 additions & 1 deletion data/definitions/midis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,5 @@ nex_fumus_dont_fail: 3321
nex_embrace_darkness: 3322
nex_taste_wrath: 3323
nex_fumus: 3325
nex_glacies_dont_fail: 3327
nex_glacies_dont_fail: 3327
church_organ: 147
7 changes: 6 additions & 1 deletion data/definitions/npcs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2169,4 +2169,9 @@ monk_of_zamorak_ourania:
hunt_mode: aggressive
drop_table: monk_of_zamorak
respawn_delay: 50
examine: "An evil human cleric."
examine: "An evil human cleric."
explorer_jack:
id: 13295
wander_radius: 5
race: human
examine: "He looks like a professional explorer."
15 changes: 15 additions & 0 deletions data/definitions/objects.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11836,3 +11836,18 @@ ourania_crack_exit:
ourania_altar:
id: 26847
examine: "An altar upon which to craft runes."
lumbridge_castle_ladder:
id: 36771
examine: "I can climb up this."
lumbridge_organ:
id: 36978
examine: "A church organ."
lumbridge_church_bell:
id: 36976
examine: "I can ring this."
fire_barbarian_village:
id: 5499
examine: "Hot!"
wizards_tower_staircase:
id: 12537
examine: "I can climb these stairs."
100 changes: 50 additions & 50 deletions data/definitions/parameters.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ ammo_group: 21
secondary_use_level: 23
unbankable: 59
quest_list_enum: 61
world_sprite_1: 130
world_sprite_2: 131
world_sprite_3: 134
world_sprite_4: 135
world_map_marker_sprite_icon: 130
world_map_marker_sprite: 131
world_map_marker_sprite_horizontal: 134
world_map_marker_sprite_diagonal: 135
quest_list_interface: 152
quest_list_scroll: 153
construction_required_item_id_1: 211
Expand Down Expand Up @@ -239,7 +239,7 @@ quest_journal_hint_text: 948
quest_item_requirement_text: 949
quest_level_requirement_text: 950
quest_reward_text_0: 951
achievement_quest_sprite: 952
task_quest_sprite: 952
barbarian_assault_reward: 954
barbarian_assault_ticket_wave: 955
familiarisation_familiar_1: 956
Expand Down Expand Up @@ -355,51 +355,51 @@ conquest_unit_param_15: 1229
conquest_unit_param_16: 1230
dynamic_inventory_option_original: 1264
dynamic_inventory_option_replacement: 1265
achievement_name: 1266
achievement_area: 1267
achievement_index: 1268
achievement_nextIndex: 1269
achievement_quest_id: 1270
achievement_sprite: 1271
achievement_difficulty: 1272
achievement_description: 1273
achievement_hint_1: 1274
achievement_hint_2: 1275
achievement_hint_3: 1276
achievement_hint_4: 1277
achievement_hint_5: 1278
achievement_hint_6: 1279
achievement_text_rol: 1280
achievement_selectable_1: 1282
achievement_selectable_2: 1283
achievement_selectable_3: 1284
achievement_selectable_4: 1285
achievement_selectable_5: 1286
achievement_selectable_6: 1287
achievement_members: 1290
achievement_group: 1292
achievement_sprite_offset: 1293
achievement_skill_1: 1294
achievement_level_1: 1295
achievement_skill_2: 1296
achievement_level_2: 1297
achievement_skill_3: 1298
achievement_level_3: 1299
achievement_skill_4: 1300
achievement_level_4: 1301
achievement_skill_5: 1302
achievement_level_5: 1303
achievement_skill_6: 1304
achievement_level_6: 1305
achievement_skill_7: 1306
achievement_level_7: 1307
achievement_skill_8: 1308
achievement_level_8: 1309
achievement_skill_9: 1310
achievement_level_9: 1311
achievement_skill_10: 1312
achievement_level_10: 1313
achievement_is_tutorial: 1322
task_name: 1266
task_area: 1267
task_index: 1268
task_next_index: 1269
task_quest_id: 1270
task_sprite: 1271
task_difficulty: 1272
task_description: 1273
task_hint_1: 1274
task_hint_2: 1275
task_hint_3: 1276
task_hint_4: 1277
task_hint_5: 1278
task_hint_6: 1279
task_text_rol: 1280
task_hint_tile_1: 1282
task_hint_tile_2: 1283
task_hint_tile_3: 1284
task_hint_tile_4: 1285
task_hint_tile_5: 1286
task_hint_tile_6: 1287
task_members: 1290
task_set: 1292
task_sprite_offset: 1293
task_skill_1: 1294
task_level_1: 1295
task_skill_2: 1296
task_level_2: 1297
task_skill_3: 1298
task_level_3: 1299
task_skill_4: 1300
task_level_4: 1301
task_skill_5: 1302
task_level_5: 1303
task_skill_6: 1304
task_level_6: 1305
task_skill_7: 1306
task_level_7: 1307
task_skill_8: 1308
task_level_8: 1309
task_skill_9: 1310
task_level_9: 1311
task_skill_10: 1312
task_level_10: 1313
task_is_tutorial: 1322
summoning_beast_of_burden: 1323
required_chompy_kills: 1366
chompy_hat_name: 1367
Expand Down
Loading

0 comments on commit 92fcaef

Please sign in to comment.