Chunker size to uint8 and Rectangular Doodads #84
26
Changes.md
26
Changes.md
|
@ -2,6 +2,22 @@
|
|||
|
||||
## v0.13.2 (TBD)
|
||||
|
||||
Some new features:
|
||||
|
||||
* **Doodads can be non-square!** You can now set a rectangular canvas size
|
||||
for your doodads. Many of the game's built-in doodads that used to be
|
||||
off-center before (doors, creatures) because their sprites were not squares
|
||||
now have correct rectangular shapes.
|
||||
* A **Cheats Menu** has been added which enables you to enter many of the
|
||||
game's cheat codes by clicking on buttons instead. Enable it through the
|
||||
"Experimental" tab of the Settings, and the cheats menu can be opened from
|
||||
the Help menu bar during gameplay.
|
||||
|
||||
Other miscellaneous changes:
|
||||
|
||||
* The default Author name on your new drawings will prefer to use your
|
||||
license registration name (if the game is registered) before falling back
|
||||
on your operating system's $USER name like before.
|
||||
* In the level editor, you can now use the Pan Tool to access the actor
|
||||
properties of doodads you've dropped into your level. Similar to the
|
||||
Actor Tool, when you mouse-over an actor on your level it will highlight
|
||||
|
@ -12,6 +28,16 @@
|
|||
on your level as might happen with the Actor Tool!
|
||||
* Start distributing AppImage releases for GNU/Linux (64-bit and 32-bit)
|
||||
|
||||
Some technical changes:
|
||||
|
||||
* Chunk sizes in levels/doodads is now a uint8 type, meaning the maximum
|
||||
chunk size is 255x255 pixels. The game's default has always been 128x128
|
||||
but now there is a limit. This takes a step towards optimizing the game's
|
||||
file formats: large world coordinates (64-bit) are mapped to a chunk
|
||||
coordinate, and if each chunk only needs to worry about the 255 pixels
|
||||
in its territory, space can be saved in memory without chunks needing to
|
||||
theoretically support 64-bit sizes of pixels!
|
||||
|
||||
## v0.13.1 (Oct 10 2022)
|
||||
|
||||
This release brings a handful of minor new features to the game.
|
||||
|
|
|
@ -43,7 +43,7 @@ var (
|
|||
|
||||
// Actor replacement cheats
|
||||
var CheatActors = map[string]string{
|
||||
"pinocchio": "boy",
|
||||
"pinocchio": PlayerCharacterDoodad,
|
||||
"the cell": "azu-blu",
|
||||
"super azulian": "azu-red",
|
||||
"hyper azulian": "azu-white",
|
||||
|
|
|
@ -36,10 +36,15 @@ func (d *Doodle) MakeCheatsWindow(supervisor *ui.Supervisor) *ui.Window {
|
|||
return d.Scene.Name()
|
||||
},
|
||||
RunCommand: func(command string) {
|
||||
// If we are in Play Mode, every command out of here is cheating.
|
||||
if playScene, ok := d.Scene.(*PlayScene); ok {
|
||||
playScene.SetCheated()
|
||||
}
|
||||
d.shell.Execute(command)
|
||||
},
|
||||
OnSetPlayerCharacter: func(doodad string) {
|
||||
if scene, ok := d.Scene.(*PlayScene); ok {
|
||||
scene.SetCheated()
|
||||
scene.SetPlayerCharacter(doodad)
|
||||
} else {
|
||||
shmem.FlashError("This only works during Play Mode.")
|
||||
|
|
|
@ -643,6 +643,11 @@ func (s *PlayScene) GetCheated() bool {
|
|||
return s.cheated
|
||||
}
|
||||
|
||||
// GetPerfect gives read-only access to the perfectRun flag.
|
||||
func (s *PlayScene) GetPerfect() bool {
|
||||
return s.perfectRun
|
||||
}
|
||||
|
||||
// ShowEndLevelModal centralizes the EndLevel modal config.
|
||||
// This is the common handler function between easy methods such as
|
||||
// BeatLevel, FailLevel, and DieByFire.
|
||||
|
@ -833,6 +838,13 @@ func (s *PlayScene) Draw(d *Doodle) error {
|
|||
}
|
||||
}
|
||||
|
||||
// Bug: sometimes (especially after cheating) if you restart a level
|
||||
// properly, cheated=false perfectRun=true but the perfectRunIcon
|
||||
// would not be showing.
|
||||
if !s.cheated && s.perfectRun && s.timerPerfectImage.Hidden() {
|
||||
s.timerPerfectImage.Show()
|
||||
}
|
||||
|
||||
// Draw the UI screen and any widgets that attached to it.
|
||||
s.screen.Compute(d.Engine)
|
||||
s.screen.Present(d.Engine, render.Origin)
|
||||
|
|
Loading…
Reference in New Issue
Block a user