Skip to content

Commit

Permalink
spellbook refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
rainlizard committed Jan 30, 2025
1 parent cb34ae1 commit dcaa953
Show file tree
Hide file tree
Showing 3 changed files with 109 additions and 138 deletions.
216 changes: 107 additions & 109 deletions Autoload/Graphics.gd
Original file line number Diff line number Diff line change
Expand Up @@ -13,97 +13,30 @@ func load_extra_images_from_harddrive():
print("Failed to load texture: ", image_path)
print('Loaded extra images from HDD: ' + str(OS.get_ticks_msec() - CODETIME_START) + 'ms')


#func load_custom_images_into_array(DATA_ARRAY, thingtypeImageFolder):
# print("Loading /thing-images/" + thingtypeImageFolder + " directory ...")
# var arrayOfFilenames = get_png_files_in_dir(Settings.unearthdata.plus_file("thing-images").plus_file(thingtypeImageFolder))
# for i in arrayOfFilenames:
# var subtypeID = int(i.get_file().get_basename())
# var img = Image.new()
# var err = img.load(i)
# if err == OK:
# var tex = ImageTexture.new()
# tex.create_from_image(img)
# if DATA_ARRAY.has(subtypeID):
# DATA_ARRAY[subtypeID][TEXTURE] = tex


#func look_for_images_to_load(DATA_ARRAY, objectID, thingCfgName):
# if custom_images_list.empty() == true:
# custom_images_list = get_png_filenames_in_dir(Settings.unearthdata.plus_file("custom-object-images"))
#
# var dir = Settings.unearthdata.plus_file("custom-object-images")
#
# var uppercaseImageFilename = thingCfgName+".PNG".to_upper()
# var uppercasePortraitFilename = thingCfgName+"_PORTRAIT.PNG".to_upper()
#
# var realImageFilename = ""
# var realPortraitFilename = ""
#
# if custom_images_list.has(uppercaseImageFilename):
# realImageFilename = custom_images_list[uppercaseImageFilename]
#
# if custom_images_list.has(uppercasePortraitFilename):
# realPortraitFilename = custom_images_list[uppercasePortraitFilename]
#
# if realImageFilename != "":
# var img = Image.new()
# var err = img.load(dir.plus_file(realImageFilename))
# if err == OK:
# var tex = ImageTexture.new()
# tex.create_from_image(img, Texture.FLAG_MIPMAPS+Texture.FLAG_ANISOTROPIC_FILTER)
# #DATA_ARRAY[objectID][Things.TEXTURE] = tex
#
# if realPortraitFilename != "":
# var img = Image.new()
# var err = img.load(dir.plus_file(realPortraitFilename))
# if err == OK:
# var tex = ImageTexture.new()
# tex.create_from_image(img, Texture.FLAG_MIPMAPS+Texture.FLAG_ANISOTROPIC_FILTER)
# #DATA_ARRAY[objectID][Things.PORTRAIT] = tex
#
#func get_png_filenames_in_dir(path):
# var dictionary = {}
# var dir = Directory.new()
# if dir.open(path) == OK:
# dir.list_dir_begin()
# var file_name = dir.get_next()
# while file_name != "":
# if dir.current_is_dir():
# pass
# else:
# if file_name.get_extension().to_upper() == "PNG":
# dictionary[file_name.to_upper().replace(" ", "_")] = file_name
# file_name = dir.get_next()
# else:
# print("An error occurred when trying to access the path.")
# return dictionary
#
#func get_png_files_in_dir(path):
# var array = []
# var dir = Directory.new()
# if dir.open(path) == OK:
# dir.list_dir_begin()
# var file_name = dir.get_next()
# while file_name != "":
# if dir.current_is_dir():
# pass
# else:
# if file_name.get_extension().to_upper() == "PNG":
# var fileNumber = file_name.get_file().get_basename()
# if Utils.string_has_letters(fileNumber) == false:
# array.append(path.plus_file(file_name))
# file_name = dir.get_next()
# else:
# print("An error occurred when trying to access the path.")
# return array




# The keys can be integers or strings (as read from objects.cfg's AnimationID field)
# When they're a String, they can be either read the 'Name' field or the 'AnimationID' field, whichever one is prioritized
var sprite_id = {
# Spellbook objects
"SPELLBOOK_ARMG" : preload("res://dk_images/keepower_64/armagedn_std.png"),
"SPELLBOOK_POSS" : preload("res://dk_images/keepower_64/possess_std.png"),
"SPELLBOOK_HOE" : preload("res://edited_images/icon_handofevil.png"),
"SPELLBOOK_IMP" : preload("res://dk_images/keepower_64/imp_std.png"),
"SPELLBOOK_OBEY" : preload("res://edited_images/mustobey.png"),
"SPELLBOOK_SLAP" : preload("res://edited_images/icon_slap.png"),
"SPELLBOOK_SOE" : preload("res://dk_images/keepower_64/sight_std.png"),
"SPELLBOOK_CTA" : preload("res://dk_images/keepower_64/cta_std.png"),
"SPELLBOOK_CAVI" : preload("res://dk_images/keepower_64/cavein_std.png"),
"SPELLBOOK_HEAL" : preload("res://dk_images/keepower_64/heal_std.png"),
"SPELLBOOK_HLDAUD" : preload("res://dk_images/keepower_64/holdaud_std.png"),
"SPELLBOOK_LIGHTN" : preload("res://dk_images/keepower_64/lightng_std.png"),
"SPELLBOOK_SPDC" : preload("res://dk_images/keepower_64/speed_std.png"),
"SPELLBOOK_PROT" : preload("res://dk_images/keepower_64/armor_std.png"),
"SPELLBOOK_CONCL" : preload("res://dk_images/keepower_64/conceal_std.png"),
"SPELLBOOK_DISEASE" : preload("res://dk_images/keepower_64/disease_std.png"),
"SPELLBOOK_CHKN" : preload("res://dk_images/keepower_64/chicken_std.png"),
"SPELLBOOK_DWAL" : preload("res://dk_images/keepower_64/dstwall_std.png"),
"SPELLBOOK_TBMB" : preload("res://edited_images/timebomb.png"),
# Objects
046 : preload("res://dk_images/furniture/torture_machine_tp/r1frame01.png"),
098 : preload("res://dk_images/furniture/workshop_machine_tp/AnimWorkshopMachine.tres"),
100 : preload("res://dk_images/furniture/flagpole_empty_tp/r1frame01.png"),
Expand Down Expand Up @@ -172,7 +105,6 @@ var sprite_id = {
952 : preload("res://dk_images/statues/anim0954/r1frame01.png"),
958 : preload("res://dk_images/statues/anim0960/r1frame01.png"),
962 : preload("res://dk_images/other/anim0963/r1frame01.png"),

# Extras
"ACTIONPOINT" : preload("res://Art/ActionPoint.png"),
"LIGHT" : preload("res://edited_images/GUIEDIT-1/PIC26.png"),
Expand All @@ -197,26 +129,6 @@ var sprite_id = {
"WORD_OF_POWER" : preload("res://dk_images/trapdoor_64/trap_wop_std.png"),
"LAVA" : preload("res://dk_images/trapdoor_64/trap_lava_std.png"),
"TNT" : preload("res://extra_images/tnt.png"),
# Spellbooks
"SPELLBOOK_ARMG" : preload("res://dk_images/keepower_64/armagedn_std.png"),
"SPELLBOOK_POSS" : preload("res://dk_images/keepower_64/possess_std.png"),
"SPELLBOOK_HOE" : preload("res://edited_images/icon_handofevil.png"),
"SPELLBOOK_IMP" : preload("res://dk_images/keepower_64/imp_std.png"),
"SPELLBOOK_OBEY" : preload("res://edited_images/mustobey.png"),
"SPELLBOOK_SLAP" : preload("res://edited_images/icon_slap.png"),
"SPELLBOOK_SOE" : preload("res://dk_images/keepower_64/sight_std.png"),
"SPELLBOOK_CTA" : preload("res://dk_images/keepower_64/cta_std.png"),
"SPELLBOOK_CAVI" : preload("res://dk_images/keepower_64/cavein_std.png"),
"SPELLBOOK_HEAL" : preload("res://dk_images/keepower_64/heal_std.png"),
"SPELLBOOK_HLDAUD" : preload("res://dk_images/keepower_64/holdaud_std.png"),
"SPELLBOOK_LIGHTN" : preload("res://dk_images/keepower_64/lightng_std.png"),
"SPELLBOOK_SPDC" : preload("res://dk_images/keepower_64/speed_std.png"),
"SPELLBOOK_PROT" : preload("res://dk_images/keepower_64/armor_std.png"),
"SPELLBOOK_CONCL" : preload("res://dk_images/keepower_64/conceal_std.png"),
"SPELLBOOK_DISEASE" : preload("res://dk_images/keepower_64/disease_std.png"),
"SPELLBOOK_CHKN" : preload("res://dk_images/keepower_64/chicken_std.png"),
"SPELLBOOK_DWAL" : preload("res://dk_images/keepower_64/dstwall_std.png"),
"SPELLBOOK_TBMB" : preload("res://edited_images/timebomb.png"),
# Decorations/Furniture
"BANNER" : preload("res://extra_images/banner.png"),
"FERN" : preload("res://extra_images/fern.png"),
Expand Down Expand Up @@ -319,3 +231,89 @@ var sprite_id = {
"TIME_MAGE" : preload("res://extra_images/time_mage.png"),
"TIME_MAGE_PORTRAIT" : preload("res://extra_images/time_mage_portrait.png"),
}


#func load_custom_images_into_array(DATA_ARRAY, thingtypeImageFolder):
# print("Loading /thing-images/" + thingtypeImageFolder + " directory ...")
# var arrayOfFilenames = get_png_files_in_dir(Settings.unearthdata.plus_file("thing-images").plus_file(thingtypeImageFolder))
# for i in arrayOfFilenames:
# var subtypeID = int(i.get_file().get_basename())
# var img = Image.new()
# var err = img.load(i)
# if err == OK:
# var tex = ImageTexture.new()
# tex.create_from_image(img)
# if DATA_ARRAY.has(subtypeID):
# DATA_ARRAY[subtypeID][TEXTURE] = tex


#func look_for_images_to_load(DATA_ARRAY, objectID, thingCfgName):
# if custom_images_list.empty() == true:
# custom_images_list = get_png_filenames_in_dir(Settings.unearthdata.plus_file("custom-object-images"))
#
# var dir = Settings.unearthdata.plus_file("custom-object-images")
#
# var uppercaseImageFilename = thingCfgName+".PNG".to_upper()
# var uppercasePortraitFilename = thingCfgName+"_PORTRAIT.PNG".to_upper()
#
# var realImageFilename = ""
# var realPortraitFilename = ""
#
# if custom_images_list.has(uppercaseImageFilename):
# realImageFilename = custom_images_list[uppercaseImageFilename]
#
# if custom_images_list.has(uppercasePortraitFilename):
# realPortraitFilename = custom_images_list[uppercasePortraitFilename]
#
# if realImageFilename != "":
# var img = Image.new()
# var err = img.load(dir.plus_file(realImageFilename))
# if err == OK:
# var tex = ImageTexture.new()
# tex.create_from_image(img, Texture.FLAG_MIPMAPS+Texture.FLAG_ANISOTROPIC_FILTER)
# #DATA_ARRAY[objectID][Things.TEXTURE] = tex
#
# if realPortraitFilename != "":
# var img = Image.new()
# var err = img.load(dir.plus_file(realPortraitFilename))
# if err == OK:
# var tex = ImageTexture.new()
# tex.create_from_image(img, Texture.FLAG_MIPMAPS+Texture.FLAG_ANISOTROPIC_FILTER)
# #DATA_ARRAY[objectID][Things.PORTRAIT] = tex
#
#func get_png_filenames_in_dir(path):
# var dictionary = {}
# var dir = Directory.new()
# if dir.open(path) == OK:
# dir.list_dir_begin()
# var file_name = dir.get_next()
# while file_name != "":
# if dir.current_is_dir():
# pass
# else:
# if file_name.get_extension().to_upper() == "PNG":
# dictionary[file_name.to_upper().replace(" ", "_")] = file_name
# file_name = dir.get_next()
# else:
# print("An error occurred when trying to access the path.")
# return dictionary
#
#func get_png_files_in_dir(path):
# var array = []
# var dir = Directory.new()
# if dir.open(path) == OK:
# dir.list_dir_begin()
# var file_name = dir.get_next()
# while file_name != "":
# if dir.current_is_dir():
# pass
# else:
# if file_name.get_extension().to_upper() == "PNG":
# var fileNumber = file_name.get_file().get_basename()
# if Utils.string_has_letters(fileNumber) == false:
# array.append(path.plus_file(file_name))
# file_name = dir.get_next()
# else:
# print("An error occurred when trying to access the path.")
# return array

2 changes: 1 addition & 1 deletion Autoload/Version.gd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
extends Node

var major_minor = "0.52"
var major_minor = "0.51"
var patch = "0000"
var full = ""
var unearth_map_format_version:float = 1.06
Expand Down
29 changes: 1 addition & 28 deletions Scenes/CfgLoader.gd
Original file line number Diff line number Diff line change
Expand Up @@ -97,33 +97,6 @@ func start(mapPath):

oCustomSlabSystem.load_unearth_custom_slabs_file()

var LIST_OF_OBJECTS_WITH_HARDCODED_SPRITES = [
"SPELLBOOK_HOE",
"SPELLBOOK_IMP",
"SPELLBOOK_OBEY",
"SPELLBOOK_SLAP",
"SPELLBOOK_SOE",
"SPELLBOOK_CTA",
"SPELLBOOK_CAVI",
"SPELLBOOK_HEAL",
"SPELLBOOK_HLDAUD",
"SPELLBOOK_LIGHTN",
"SPELLBOOK_SPDC",
"SPELLBOOK_PROT",
"SPELLBOOK_CONCL",
"SPELLBOOK_DISEASE",
"SPELLBOOK_CHKN",
"SPELLBOOK_DWAL",
"SPELLBOOK_TBMB",
"SPELLBOOK_ARMG",
"SPELLBOOK_POSS",
"SPELLBOOK_RBND",
"SPELLBOOK_FRZ",
"SPELLBOOK_SLOW",
"SPELLBOOK_FLGT",
"SPELLBOOK_VSN",
]

func load_objects_data(cfg): # 10ms
for section in cfg:
if section.begins_with("object"):
Expand All @@ -140,7 +113,7 @@ func load_objects_data(cfg): # 10ms

animID = objSection.get("AnimationID")
newSprite = get_sprite(animID, newName)
if newSprite == null or newName in LIST_OF_OBJECTS_WITH_HARDCODED_SPRITES:
if newSprite == null or int(animID) == 777: # 777 is the AnimationID for all spellbooks in objects.cfg, which unearth uses separate sprites for
newSprite = Things.DATA_OBJECT[id][Things.SPRITE]

newGenre = objSection.get("Genre")
Expand Down

0 comments on commit dcaa953

Please sign in to comment.