Giter VIP home page Giter VIP logo

engge's People

Contributors

mbone avatar neuromancer avatar scemino avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

engge's Issues

Crash when running engge from Epic version of the game

$ ls resources/
ThimbleweedPark.ggpack1  ThimbleweedPark.ggpack2
$ md5sum resources/*
45f6e4a6f5182e8e8150c0b0d7e07f52  resources/ThimbleweedPark.ggpack1
a0a35c32caf048803752d70b7fe637e4  resources/ThimbleweedPark.ggpack2
$ $ gdb --args ./engge 
GNU gdb (GDB) 8.2.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./engge...(no debugging symbols found)...done.
(gdb) r
Starting program: /home/g/Games/engge/engge 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
FntFont: parsing "DialogFont.fnt"...
FntFont: loading textures...
[New Thread 0x7ffff3179700 (LWP 10259)]
[Detaching after fork from child process 10260]
[Thread 0x7ffff3179700 (LWP 10259) exited]
[New Thread 0x7ffff3179700 (LWP 10261)]
[Thread 0x7ffff3179700 (LWP 10261) exited]
[New Thread 0x7ffff3179700 (LWP 10262)]
[New Thread 0x7ffff1f94700 (LWP 10263)]
[New Thread 0x7ffff156c700 (LWP 10264)]
Load texture GameSheet
Failed to load image from memory, no data provided
Fail to load texture GameSheet.png

Thread 1 "engge" received signal SIGSEGV, Segmentation fault.
0x00007ffff7b47715 in __strlen_avx2 () from /usr/lib/libc.so.6
(gdb) bt
#0  0x00007ffff7b47715 in __strlen_avx2 () from /usr/lib/libc.so.6
#1  0x00005555555aa638 in nlohmann::detail::input_adapter::input_adapter<char*, 0>(char*) ()
#2  0x000055555562dd74 in ng::SpriteSheet::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
#3  0x000055555564c50f in ng::ActorIcons::ActorIcons(ng::Engine&, std::array<ng::ActorIconSlot, 6ul>&, std::array<ng::VerbUiColors, 6ul>&, ng::Actor*&) ()
#4  0x00005555555c2583 in ng::Engine::Engine(ng::EngineSettings&) ()
#5  0x000055555556d0f2 in std::_MakeUniq<ng::Engine>::__single_object std::make_unique<ng::Engine, ng::EngineSettings&>(ng::EngineSettings&) ()
#6  0x000055555556b17a in main ()

Debugger

Implement a debugger to understand the state of the game during runtime.
Watch variables, add/remove breakpoints, ...

Inventory icon animation

Did you notice that in the game, the cell phone is indicating whether it has reception or not ? There is a little blinking green square if it has reception.

Select actor does not switch rooms

Describe the bug
When I select an actor, the camera stays in the actual room, not in the actor's room.

To Reproduce
Select an actor which is not in the current room and see.

Expected behavior
I expect the camera to be in the actor's room.

Desktop (please complete the following information):

  • OS: macOS
  • Version Mojave 10.14.4

GGPack File Version

I have tested windows version 938, 958 & 957 and cannot get them to recognise,

Which version is compatible?

Segmentation fault in sq_pushobject using latest revision

Segmentation fault using latest revision (1f4376d)

gdb --args ./engge
...
### Obj openingSign
### Obj opening1987
### Obj openingBulletHole
### Obj openingPop

Thread 1 "engge" received signal SIGSEGV, Segmentation fault.
0x00007ffff7e965f5 in sq_pushobject () from /home/g/Games/engge-latest/extlibs/squirrel/squirrel/libsquirrel.so.0
(gdb) bt
#0  0x00007ffff7e965f5 in sq_pushobject () from /home/g/Games/engge-latest/extlibs/squirrel/squirrel/libsquirrel.so.0
#1  0x00005555555fa204 in ng::_RoomPack::_defineRoom(SQVM*, long long, ng::Room*) ()
#2  0x00005555555fabe0 in ng::_RoomPack::defineRoom(SQVM*) ()
#3  0x00007ffff7ebf6f0 in SQVM::CallNative(SQNativeClosure*, long long, long long, SQObjectPtr&, int, bool&, bool&) ()
   from /home/g/Games/engge-latest/extlibs/squirrel/squirrel/libsquirrel.so.0
#4  0x00007ffff7ec06e2 in SQVM::Execute(SQObjectPtr&, long long, long long, SQObjectPtr&, unsigned long long, SQVM::ExecutionType) ()
   from /home/g/Games/engge-latest/extlibs/squirrel/squirrel/libsquirrel.so.0
#5  0x00007ffff7ec33de in SQVM::Call(SQObjectPtr&, long long, long long, SQObjectPtr&, unsigned long long) ()
   from /home/g/Games/engge-latest/extlibs/squirrel/squirrel/libsquirrel.so.0
#6  0x00007ffff7e99078 in sq_call () from /home/g/Games/engge-latest/extlibs/squirrel/squirrel/libsquirrel.so.0
#7  0x00007ffff7fbeba7 in sqstd_dofile () from /home/g/Games/engge-latest/extlibs/squirrel/sqstdlib/libsqstdlib.so.0
#8  0x00005555555e8a4d in ng::ScriptEngine::executeScript(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
#9  0x0000555555568394 in main ()
(gdb) x/i $rip
=> 0x7ffff7e965f5 <sq_pushobject+37>:	addq   $0x1,0x8(%rdx)
(gdb) info registers 
rax            0x0                 0
rbx            0x7fffffffe1d0      140737488347600
rcx            0x7865745f          2019914847
rdx            0x0                 0
rsi            0x8000000           134217728
rdi            0x555556296640      93825006134848
rbp            0x7fffffffdec0      0x7fffffffdec0
rsp            0x7fffffffdd80      0x7fffffffdd80
r8             0x55555b46bc10      93825091943440
r9             0x6                 6
r10            0xa                 10
r11            0x0                 0
r12            0x5555563717f0      93825007032304
r13            0x5                 5
r14            0x0                 0
r15            0x70                112
rip            0x7ffff7e965f5      0x7ffff7e965f5 <sq_pushobject+37>
eflags         0x10206             [ PF IF RF ]
cs             0x33                51
ss             0x2b                43
ds             0x0                 0
es             0x0                 0
fs             0x0                 0
gs             0x0                 0

voice-over support

Describe the bug
When Sandy is telling a story about Ransome, in the trailer, she should say "Ransome the Jerk...", "...was the featured act at Stupendous Brothers Circus..." and "He was about ready to go on stage and meet his well-earned doom."

To Reproduce
Go to the diner, talk to Sandy, and select twice the first sentence.

Desktop (please complete the following information):

  • OS: macOS
  • Version: Mojave 10.14.6

Implement actor run

When we double click somewhere or if we pressed the left mouse button for a certain time, the actor starts to run.

Fix Pathfinding

When you click somewhere, the actor does not always found a path to go even if it should be possible.

Functions not yet implemented

  • activeController
  • actorAlpha
  • actorAnimationNames
  • actorAnimationFlags
  • actorAt
  • actorBlinkRate
  • actorColor
  • actorCostume
  • actorDistanceTo
  • actorDistanceWithin
  • actorFace
  • actorHidden
  • actorHideLayer
  • actorInTrigger
  • actorInWalkbox
  • actorLockFacing
  • actorPlayAnimation
  • actorPosX, actorPosY
  • actorRenderOffset
  • actorRoom
  • actorShowLayer
  • actorSlotSelectable
  • actorStand
  • actorStopWalking
  • actorSound
  • actorTalkColors
  • actorTalking
  • actorTalkOffset
  • actorTurnTo
  • actorUsePos
  • actorUseWalkboxes
  • actorVolume
  • actorWalking
  • actorWalkForward
  • actorWalkSpeed
  • actorWalkTo
  • addCallback
  • adhocalytics
  • addSelectableActor
  • addTrigger
  • arrayShuffle
  • assetExists
  • breakwhilecamera
  • cameraAt
  • cameraBounds
  • cameraFollow
  • cameraInRoom
  • cameraPanTo
  • cameraPos
  • chr
  • clampInWalkbox
  • createActor
  • createLight, lightBrightness, lightConeDirection, lightConeAngle, lightConeFalloff, lightCutOffRadius, lightHalfRadius, lightTurnOn, lightZRange
  • createObject
  • createTextObject
  • cursorPosX
  • cursorPosY
  • cutscene
  • cutsceneOverride
  • definePseudoRoom
  • defineRoom
  • defineSound
  • deleteObject
  • distance
  • enableTrigger
  • enterRoomFromDoor
  • exCommand EX_ALLOW_SAVEGAMES
    // exCommand EX_POP_CHARACTER_SELECTION not used
  • exCommand EX_AUTOSAVE
  • exCommand EX_AUTOSAVE_STATE
  • exCommand EX_BUTTON_HOVER_SOUND
  • exCommand EX_CAMERA_TRACKING
  • exCommand EX_FORCE_TALKIE_TEXT
  • exCommand EX_IDLE_TIME
  • exCommand EX_OPTIONS_MUSIC
  • exCommand EX_RESTART
  • exCommand EX_SHOW_OPTIONS
  • fadeOutSound
  • findObjectAt
  • findRoom
  • findScreenPosition
  • flashSelectableActor
  • frameCounter
  • gameTime
  • getPrivatePref, setPrivatePref
  • getUserPref, setUserPref
  • in_array
  • incutscene
  • indialog
  • inputController
  • inputHUD
  • inputOff
  • inputOn
  • inputSilentOff
  • inputState
  • inputVerbs
  • is_function
  • is_object
  • isActorOnScreen
  • isActorSelectable
  • isInputOn
  • isInventoryOnScreen
  • isObject
  • isSoundPlaying
  • jiggleInventory
  • jiggleObject
  • loadArray
  • loadSound
  • logEvent
  • logInfo
  • logWarning
  • loopMusic
  • loopObjectState
  • loopObjectSound
  • loopSound
  • markAchievement
  • markProgress
  • markStat
  • masterActorArray
  • masterRoomArray
  • masterSoundVolume
  • microTime
  • moveCursorTo
  • mumbleLine
  • musicMixVolume
  • objectAlpha
  • objectAlphaTo
  • objectAt
  • objectBumperCycle
  • objectCenter
  • objectColor
  • objectDependentOn
  • objectFPS
  • objectHidden
  • objectHotspot
  • objectIcon
  • objectLit
  • objectMoveTo
  • objectOffset
  • objectOffsetTo
  • objectOwner
  • objectParallaxLayer
  • objectParent
  • objectPosX
  • objectPosY
  • objectRenderOffset
  • objectRoom
  • objectRotate
  • objectRotateTo
  • objectScale
  • objectScaleTo
  • objectScreenSpace
  • objectShader
  • objectSort
  • objectState
  • objectTouchable
  • objectUsePos
  • objectUsePosX
  • objectUsePosY
  • objectValidUsePos
  • objectValidVerb
  • ord
  • pickupObject
  • pickupReplacementObject
  • playMusic
  • playObjectSound
  • playObjectState
  • playSound
  • playSoundVolume
  • popInventory
  • pushSentence
  • random
  • randomfrom
  • randomOdds
  • randomodds
  • randomseed
  • refreshUI
  • removeCallback
  • removeInventory
  • removeTrigger
  • roomActors
  • roomEffect
  • roomFade
  • roomLayer
  • roomOverlayColor
  • roomRotateTo
  • roomSize
  • sayLine
  • sayLineAt
  • scale
  • screenSize
  • selectActor
  • setAmbientLight
  • setDebugger
  • setDefaultObject
  • setVerb
  • shakeObject
  • stopObjectMotors
  • soundMixVolume
  • soundVolume
  • startDialog
  • startglobalthread
  • stopAllSounds
  • stopObjectMotors
  • stopSentence
  • stopSound
  • stopTalking
  • strcount
  • strcrc
  • strfind
  • strfirst
  • strlast
  • strlines
  • strreplace
  • strsplit
  • talkieMixVolume
  • translate
  • threadid
  • threadpauseable
  • triggerActors
  • verbUIColors
  • walkboxHidden

Camera movement

When the camera is following an actor, the camera should move only when the actor is reaching the border of the room.

Savegames

save:

  • callbacks
  • currentroom
  • dialog
  • easy_mode
  • gameGUID
  • gameScene
  • gameTime
  • globals
  • inputState
  • inventory
  • objects
  • rooms
  • savebuild
  • savetime
  • selectedActor
  • version
  • capture screen
  • call preSave callback

load:

  • callbacks
  • currentroom
  • dialog
  • easy_mode
  • gameGUID
  • gameScene
  • gameTime
  • globals
  • inputState
  • inventory
  • objects
  • rooms
  • savebuild
  • savetime
  • selectedActor
  • version
  • call preLoad callback
  • call postLoad callback

UI:

  • save
  • load
  • translations

bugs:

  • actor facing is locked after loading game
  • actor HUD is wrong
  • script fails in enteredRoom after loading a game

todo:

  • save actor _lockFacing
  • save actor _volume
  • save actor _useDir
  • save actor _usePos
  • save actor _renderOffset
  • save actor _color
  • save actor _costumeSheet
  • save object _state
  • save object _touchable
  • save object _offset
  • add SAVEBUILD variable
  • forceTalkieText
  • load actor _animations array
  • fix Linux linking error: CMakeFiles/engge.dir/Engine/Engine.cpp.o:(.data.rel.ro._ZTI13SQCollectable[_ZTI13SQCollectable]+0x10): undefined reference to `typeinfo for SQRefCounted'

Notes color not implemented

Describe the bug
When the actor looks his notes, we can see colors codes #00A000#โœ“#000000# instead of a green check mark.

To Reproduce
Boris at the beginning of the game, if he looks his notes we can see the color codes.

Expected behavior
We should see the real color, not the codes.

Screenshots
boris_notes

Callbacks not called

There are a lot of callbacks not called by the engine yet:

  • onActorSelected
  • onTalkieID
  • onPickup
  • onVerbClick
  • onObjectClick
  • onChoiceClick
  • actorEnter
  • actorExit
  • actorPreWalk
  • actorPostWalk
  • objectGive
  • objectPreWalk
  • objectPostWalk
  • onLanguageChange
  • enteredRoom
  • exitedRoom
  • preLoad
  • postLoad
  • preSave
  • sayingLine
  • preWalking
  • postWalking
  • pressedKey
  • actorArrived

Setup CI tests to avoid crossplatform issues

It would be nice to setup some CI tests to detect crossplaform issues when compiling and running engge. It is worth to mention that travis is free for open-source repositories and has support for Linux and OSX.

Logger

To have a better diagnostic when the program has an unexpected behaviour.

Stop sentence when click elsewhere

When we execute an action (walk to door for example), if we click elsewhere, the previous sentence should be stopped. Today the actor walk to elsewhere but we still change room ๐Ÿ˜ข

object's enter function is not called

Describe the bug
Object can have a function called 'enter' which should be called each time the player enters the room.

To Reproduce
Enter RansomeTrailer room.

Expected behavior
You can see the cheese even if the refrigerator is closed.
This code is not executed: objectDependentOn(this, ransomeTrailerFridge, OPEN)

Screenshots
Screenshot at May 16 21-12-49

Desktop (please complete the following information):

  • OS: macOS
  • Version: Mojave 10.14.4

Manage inventory

  • draw correctly background and items
  • allow to scroll items
  • jiggle animation
  • pop animation

Wrong actor direction when entering room

Describe the bug
When entering a room, the actor has a wrong direction.

To Reproduce
Enter a room

Expected behavior
When the door is at the top, the actor should be facing us.

Screenshots
In this example, the actor enter the bathroomQuickiePalDoor:
engge1

Desktop (please complete the following information):

  • OS: macOS
  • Version: Mojave 10.14.4

Additional context
none

Hide parenthesis in dialogs

Describe the bug
Hide words in parenthesis in dialogs.

To Reproduce
Type this test.nut:

include("Defines.nut")
include("Boot.nut")

inputOn()
inputVerbs(ON)
selectActor(ray)
enterRoomFromDoor(highwayBridgeDoor)
sayLine("@30344")

Expected behavior
Actor should say "It's already open.", not "(neutral)It's already open."

Desktop (please complete the following information):

  • OS: macOS
  • Version Mojave 10.14.4

Give verb

When we select Give verb, the suffix "to" should be displayed then if the cursor is on an actor, its name should be appended.

Possible integration with SCUMMVM?

I know this implementation of the experimental game engine is still a work in progress, but I'm wondering if it does make sense to try to re-use the SCUMMVM implementation of common point-and-click game elements (actor, dialogs, etc) to accelerate the development progress.

Wrong parallax

Describe the bug
The parallax is wrong in some rooms.

To Reproduce
In the script type:

include("Defines.nut")
include("Boot.nut")

inputOn()
inputVerbs(ON)
selectActor(ray)
enterRoomFromDoor(bathroomQuickiePalDoor)

Expected behavior
The foreground should be displayed correctly.

Screenshots
engge

Desktop (please complete the following information):

  • OS: macOS
  • Version Mojave 10.14.4

Additional context
none

Add reach support

When actor is picking an object, a reach animation should be played before.

Some animations are wrong

Describe the bug
Some layers are not drawn at the correct place.

To Reproduce
Select Ransome and use hair gel.
His face is behind his hair.

Expected behavior
The face should be drawn at the correct place.

Screenshots
bad_costume_anim

Desktop (please complete the following information):

  • OS: macOS
  • Version: 10.14.6

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.