Skip to content

Commit

Permalink
fix: circular dependency
Browse files Browse the repository at this point in the history
  • Loading branch information
pikdum committed Sep 22, 2024
1 parent 52b9842 commit 184bf81
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 31 deletions.
4 changes: 2 additions & 2 deletions lib/game/login.ex
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
defmodule ThistleTea.Game.Login do
import ThistleTea.Game.UpdateObject, only: [build_update_packet: 4]
import ThistleTea.Game.UpdateObject, only: [build_update_packet: 4, get_item_packets: 1]
import Bitwise, only: [<<<: 2, |||: 2]

import ThistleTea.Util,
only: [pack_guid: 1, send_packet: 2, send_update_packet: 1, get_item_packets: 1]
only: [pack_guid: 1, send_packet: 2, send_update_packet: 1]

alias ThistleTea.DBC

Expand Down
7 changes: 5 additions & 2 deletions lib/game/movement.ex
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
defmodule ThistleTea.Game.Movement do
import ThistleTea.Character, only: [get_update_fields: 1]
import ThistleTea.Game.Character, only: [generate_random_equipment: 0]
import ThistleTea.Game.UpdateObject, only: [generate_packet: 2, decode_movement_info: 1]
import ThistleTea.Util, only: [send_update_packet: 1, get_item_packets: 1]

import ThistleTea.Game.UpdateObject,
only: [generate_packet: 2, decode_movement_info: 1, get_item_packets: 1]

import ThistleTea.Util, only: [send_update_packet: 1]

require Logger

Expand Down
24 changes: 23 additions & 1 deletion lib/game/update_object.ex
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ defmodule ThistleTea.Game.UpdateObject do
# @update_type_near_objects 5

# @object_type_object 0
# @object_type_item 1
@object_type_item 1
# @object_type_container 2
# @object_type_unit 3
# @object_type_player 4
Expand Down Expand Up @@ -70,6 +70,8 @@ defmodule ThistleTea.Game.UpdateObject do
# @spline_flag_enter_cycle 0x00200000
# @spline_flag_frozen 0x00400000

@item_guid_offset 0x40000000

@field_defs %{
object_guid: %{
size: 2,
Expand Down Expand Up @@ -908,4 +910,24 @@ defmodule ThistleTea.Game.UpdateObject do
)
)
end

# TODO: i really need to clean this up
def get_item_packets(items) do
items
|> Enum.map(fn {_, item} ->
fields = %{
object_guid: item.entry + @item_guid_offset,
# object + item
object_type: 3,
object_entry: item.entry,
item_flags: item.flags
}

mb = %{
update_flag: 0
}

generate_packet(@update_type_create_object2, @object_type_item, fields, mb)
end)
end
end
26 changes: 0 additions & 26 deletions lib/util.ex
Original file line number Diff line number Diff line change
@@ -1,16 +1,10 @@
defmodule ThistleTea.Util do
import Binary, only: [split_at: 2, trim_trailing: 1, reverse: 1]
import Bitwise, only: [|||: 2, <<<: 2, &&&: 2]
import ThistleTea.Game.UpdateObject, only: [generate_packet: 4]

@smsg_update_object 0x0A9
@smsg_compressed_update_object 0x1F6

@update_type_create_object2 3
@object_type_item 1

@item_guid_offset 0x40000000

@range 250

def random_int(min, max) when is_float(min) and is_float(max) do
Expand Down Expand Up @@ -51,26 +45,6 @@ defmodule ThistleTea.Util do
end
end

# TODO: i really need to clean this up
def get_item_packets(items) do
items
|> Enum.map(fn {_, item} ->
fields = %{
object_guid: item.entry + @item_guid_offset,
# object + item
object_type: 3,
object_entry: item.entry,
item_flags: item.flags
}

mb = %{
update_flag: 0
}

generate_packet(@update_type_create_object2, @object_type_item, fields, mb)
end)
end

def pack_guid(guid) when is_integer(guid) do
pack_guid(<<guid::size(64)>>)
end
Expand Down

0 comments on commit 184bf81

Please sign in to comment.