so many bugs i cannot even breathe

This commit is contained in:
bryanthaboi
2026-07-30 07:41:41 -04:00
parent e63fa70700
commit 0f581e2f69
78 changed files with 7729 additions and 523 deletions
+29 -1
View File
@@ -42,6 +42,20 @@ function Player.new(data, cx, cy, facing)
local ok, img = pcall(love.graphics.newImage, fx.shadow.path)
self.shadowImg = ok and img or nil
end
-- FishingAnim (engine/overworld/player_animations.asm) patches tiles
-- $02/$06/$0a -- the bottom tile row of each standing frame -- with
-- RedFishingTiles before it parks the rod OAM, so the rod stroke meets a
-- pair of hands instead of ending in mid air (#384)
if fx then
local function posePath(name)
local def = fx[name]
return def and def.path or nil
end
local pose = { down = posePath("redFishFront"), up = posePath("redFishBack") }
pose.left = posePath("redFishSide")
pose.right = pose.left -- the side pose mirrors like the sprite (OAM_XFLIP)
if pose.down or pose.up or pose.left then self.fishTiles = pose end
end
self.cellX, self.cellY = cx, cy
self.px, self.py = cx * 16, cy * 16
self.facing = facing or "down"
@@ -231,7 +245,10 @@ function Player:pose()
py = py - math.floor((total - self.spinFrames) * 24 / total)
end
end
local sprite = (self.surfing and self.surfSprite)
-- RodResponse (engine/items/item_effects.asm) zeroes wWalkBikeSurfState
-- across FishingAnim, so casting from the water shows the on-foot sheet
local sprite = (self.fishing and self.sprite)
or (self.surfing and self.surfSprite)
or (self.onBike and self.bikeSprite) or self.sprite
return sprite, self.px, py, facing, phase, flip, hopping
end
@@ -263,6 +280,17 @@ function Player:draw(camX, camY)
love.graphics.draw(self.shadowImg, sx + 16, sy + 16, 0, -1, -1)
end
end
-- Fishing pose: the standing frame with its bottom tile row swapped for
-- RedFishingTiles, which is where the hands and the near half of the rod
-- live; the far half is the rod OAM OverworldState draws (FishingRodOAM,
-- engine/overworld/player_animations.asm) -- #384
local fishTile = self.fishing and self.fishTiles and self.fishTiles[facing]
if fishTile then
sprite:draw(px, py, camX, camY, facing, 0, false, true)
sprite:drawTile(fishTile, math.floor(px - camX),
math.floor(py - camY) - 4 + 8, facing == "right")
return
end
sprite:draw(px, py, camX, camY, facing, phase, flip)
end