summary refs log tree commit diff stats
path: root/src/com/fourisland
Commit message (Collapse)AuthorAgeFilesLines
...
* Engine: Added some control to MusicStarla Insigna2009-02-105-9/+93
| | | | MapViewGameState now plays music depending on the variables of its Map, which can tell it to either stop the music, keep the previous music playing or start playing a specified music.
* Engine: Removed Music starting delayStarla Insigna2009-02-103-0/+91
| | | | | | This annoying bug was finally removed by creating a seperate MidiParser class that takes a Sequence and parses out the non-emitting messages. This is run in ObjectLoader so the result is cached. Fixes #3
* Engine: Tweaked Window background positioningStarla Insigna2009-02-102-4/+9
| | | | Refs #5
* Engine: Refactored SystemGraphic transparencyStarla Insigna2009-02-104-24/+65
| | | | | | Previously, every time a transparent section of SystemGraphic had to be rendered, it would be to be fed through Toolkit, FilteredImageSource, TransparentImageFilter and converted from a BufferedImage to an Image to a BufferedImage again. This has been replaced (and optimized) by preforming this when the SystemGraphic is loaded into memory, instead of every time it is used. Refs #5
* Re-implemented DatabaseStarla Insigna2009-02-0915-118/+316
| | | | See #8
* Added Decision2 soundStarla Insigna2009-02-083-1/+3
| | | | This sound should be played when the player selects something from the TitleScreen, opens the Menu and other choice sounding places.
* Added an RTPStarla Insigna2009-02-089-24/+27
|
* Started MessageWindowStarla Insigna2009-02-084-2/+153
| | | | Currently, MessageWindow splits a string into four lines and displays it when necessary. However, there is currently no way to close the window, it does not animate upon opening and more.
* Tweaked Window graphic valuesStarla Insigna2009-02-082-8/+7
|
* Fixed Window Selector background alignmentStarla Insigna2009-02-082-2/+3
| | | | In ChoiceWindow, the background picture for the Selector windows wasn't positioned correctly.
* Added flickering to Selector windowStarla Insigna2009-02-081-6/+27
|
* Add choice choosing to ChoiceWindowStarla Insigna2009-02-086-110/+253
| | | | ChoiceWindow has also been modified around to rely on a Window class which makes the process more elegant (not elegant, just more so than before). TitleScreenGameState has also been modified to close the game when "End" is selected.
* Added Sound Effect supportStarla Insigna2009-02-082-0/+80
|
* Added support for other System filesStarla Insigna2009-02-0870-16/+38
| | | | | | Because the coordinates and transparent color previously used were tuned for the default System file, the coordinates were changed to be more forgiving and the color is picked from the last pixel of the first row from the graphic. Also, for some reason, every file in source control has been marked as modified, even though most haven't been. Don't know why this happened.
* Added text centering to ChoiceWindowStarla Insigna2009-02-082-4/+11
|
* Implemented a basic ChoiceWindowStarla Insigna2009-02-086-0/+260
| | | | This window should be used when there are a few choices available (such as in TitleScreenGameState and MenuGameState) and one needs to be chosen. The implementation currently is bad, the code is messy and it could be optimized. Plus, there are a few bugs in it and no choice can currently be made, only the rendering has been done.
* Added TurnLeft and TurnRight AnimationTypesStarla Insigna2009-02-076-26/+133
| | | | | | | | Also implemented opposite(), left() and right() functions for Direction which return the opposite, counterclockwise and clockwise directions respectively. I don't exactly like the current Direction implementation as it's not very elegant. Hopefully there is a way to make this prettier. Also added a setter to PossibleEvent that allows LayerEvent to notify it when it starts or stops moving. This is necessary because the TurnLeft and TurnRight AnimationTypes constantly attempt to rotate the Event and if the Direction of the Event is changed while it is moving, it will move to a different space and animation will look strange. Thus, setDirection() has been modified so it will disallow direction change if the Event is moving. Also fixed a small encapsulation bug in AbstractEvent. PossibleEvent's notification of movement was made possible through the overriding of the setMoving() function, which is used by AbstractEvent to set if the Event is currently moving. However, while it used setMoving() to turn on moving, previously it did not use it to turn off moving, it simply modified the field. This has been fixed.
* Added tick-processing to AnimationTypeStarla Insigna2009-02-077-51/+88
| | | | AnimationType is designed to assert some control over a PossibleEvent's Direction and AnimationStep. Previously, it could only allow or disallow the changing of one or both of those fields. Now, certain AnimationTypes (specifically CommonWithStepping, TurnLeft and TurnRight) can modify those fields as well every tick.
* Removed unnessecary functions from PossibleEventStarla Insigna2009-02-071-38/+8
|
* Protected PossibleEventStarla Insigna2009-02-073-55/+124
| | | | Package-privated most functions (except for addPrecondition() which should be used by clients) because clients shouldn't have access to them. Also implemented the Builder pattern so clients can create PossibleEvents, but not modify them, making PossibleEvent effectively immutable (to clients), though it actually isn't because it can be modified by classes within the package.
* Implemented all AnimationTypesStarla Insigna2009-02-075-41/+92
|
* Fixed Event layer rendering glitchStarla Insigna2009-02-071-2/+14
|
* Fixed transparent image in ObjectLoaderStarla Insigna2009-02-073-64/+4
|
* Fixed a transition problemStarla Insigna2009-02-074-4/+17
|
* Started DatabaseStarla Insigna2009-02-0711-13/+142
|
* Implemented SlideTransitionStarla Insigna2009-02-066-3/+159
|
* Fixed SaveFile I/O closing forgetnessStarla Insigna2009-02-051-2/+1
|
* Fixed Transition processingStarla Insigna2009-02-053-19/+50
|
* Added Executor to MoveEventThreadStarla Insigna2009-02-033-16/+21
|
* Started working on new TransitionsStarla Insigna2009-02-0314-154/+299
| | | | The old transition implementation was old and patchy. The new one is planned to be extensible and to work properly with all transitions. Currently this is not so, but with work it hopefully will be.
* Fixed [Gotez06] InterruptedException violationStarla Insigna2009-02-036-38/+18
|
* Fixed MoveEventThread latch breakageStarla Insigna2009-02-031-16/+16
| | | | | | | | Previously, MoveEventThread used a CountDownLatch to power it's moveAll() function. However, because CountDownLatch can only count down and not back up, every time a MoveEventThread was spawned, it's static moveEventWait (which was a CountDownLatch) would be re-instantated. If a thread was already waiting on the CountDownLatch, it would be disrupted. This meant that if the first MoveEventThread spawned completed before the rest, the entire program would grind to a halt. This has been fixed by replacing the CountDownLatch with a Semaphore (not exactly what Semaphore is supposed to be used for, but it works). Every time a MoveEventThread is spawned, it acquires a permit from the Semaphone and releases it when it completes. moveAll() then attempts to acquire 100 permits (the Semaphore is initalized to only allow 100 permits), which blocks until all MoveEventThreads have completed. The downside of this is that only 100 MoveEventThreads can execute at once, but it is exceptionally unlikely that such an event will occur. Also, if this does occur, the other MoveEventThreads will simply wait for another to complete and then acquire a permit.
* Added support for OnHeroTouch eventsStarla Insigna2009-02-034-2/+47
| | | | | | | | Also fixed two bugs: 1. In the condition where a StepMoveEvent is called upon an Event whose animation type does not allow them to turn in the desired direction, they will move in the direction they are already in and walk off the screen while doing so. This was fixed by checking (after the event's direction has been set during the startMoving() process) that the event was able to face in the correct direction. 2. If a StepMoveEvent was enacted on an event that was already moving, it would be skipped. This has been fixed by waiting for the desired event to complete moving at the start of MoveEventThread.
* Added JavaDoc to many classesStarla Insigna2009-02-0218-34/+39
|
* Added LoopUntilCollisionMoveEventStarla Insigna2009-02-022-8/+41
| | | | LoopUntilCollisionMoveEvent repeats an array of MoveEvents until the event in question collides with something. This is done by comparing the location of the event before and after the actions. It is a replacement for the deprecated CycleUpDownMovementType and CycleLeftRightMovementType.
* Added tiled ChipSet supportStarla Insigna2009-02-022-25/+106
| | | | Replaced previous chipset management (manual via a Java class) with "tiled" ChipSets. However, this support will be removed once a proper map editor/chipset editor is created for FourPuzzle.
* Fixed AutomaticViewpoint cache issueStarla Insigna2009-01-302-7/+8
| | | | | | Previously, heroLoc wasn't a defensive copy of HeroEvent.getLocation(), it was HeroEvent.getLocation(). As of such, the condition that they were inequal always failed. However, a typo in the condition (leaving out the exclamation point) led us to believe it was working fine when in fact, AutomaticViewpoint was recalculating the viewpoint every tick instead of everytime the hero moves. Now it only refreshes when the hero moves or is moving. Also cleared up an ambiguous comment in SpecialEvent's PanViewpoint's JavaDoc.
* Implemented viewpoint-related Event actionsStarla Insigna2009-01-307-4/+218
| | | | Implemented FixViewpoint(), PanViewpoint() and ResetViewpoint()
* Created ViewpointStarla Insigna2009-01-304-51/+121
|
* Fixed scrolling issuesStarla Insigna2009-01-301-11/+20
|
* Added viewpoint scrollingStarla Insigna2009-01-305-53/+118
| | | | | | Now, maps can be larger than (20,15) and the map will scroll as the hero walks across the middle. However, Southward and Eastward middle-traversing appears to warp reality just a little and there are a few kinks that need to be straightened out. Map layer caching has also been added because the lower and upper layers of a map never change, so they are cached after the first rendering.
* Fixed LayerEvent rendering condition bugStarla Insigna2009-01-281-7/+1
| | | | Replaced said condition with an instanceof check to see if toDraw.getGraphic() is an instance of BlankEventGraphic. The previous way requires BlankEventGraphic() to be instantated many times for no reason, thus wasting resources and causing other problems.
* Fixed HeroEvent rendering condition bugStarla Insigna2009-01-281-10/+2
| | | | Replaced said condition with an instanceof check to see if toDraw.getGraphic() is an instance of BlankEventGraphic. The previous way did not, in fact, work because an EventGraphic never be equal to a String. This previous way only existed because HeroEvent's graphic used to be stored as a filename/offset combo instead of as an EventGraphic.
* Fixed off-screen bugStarla Insigna2009-01-286-11/+28
| | | | If an Event is adjacent to a Map boundary, then it could accidentally walk off the screen during the following circumstance: When a MoveEvent() action tells said Event to move off-screen while the Event is already moving, collision checking will be bypassed and the Event will proceed to walk off the screen, after which an Exception will be thrown when said Event attempts to move again. This bug has been fixed.
* Created a manager for SpecialEvent action threadsStarla Insigna2009-01-285-6/+95
| | | | EventHandler controls when they are executed and allows MapViewGameState to poll it to see if it is currently managing any action threads. If it is, MapViewGameState should be able to prevent certain actions from occuring (unless the action thread is ParallelProcess) such as keyboard input.
* Removed the moveDirection field from AbstractEventStarla Insigna2009-01-284-54/+45
| | | | As direction itself is always the same as moveDirection when moveDirection is needed, it will do fine without having to complicated access modifiers.
* Added parentMap data to EventStarla Insigna2009-01-277-182/+195
| | | | StepMoveEvent has an issue where an event could walk off the screen under its influence because it preformed no collision checking, due to the fact that the parent map had to be accessable to preform collision checking. Now, both event styles (unified with an AbstractEvent class that handles functions common to both styles) carries information about its parent map, provided by EventList which is in turn provided by the parent map itself.
* Renamed MovementType's startMoving()Starla Insigna2009-01-275-6/+5
| | | | startMoving() wasn't exactly a fit enough name for the method, so it was changed to nextMovement()
* Converted GameCharacter's graphic store methodStarla Insigna2009-01-272-18/+9
| | | | Previously, GameCharacter (HeroEvent's backend) stored it's graphic as a graphic/offset combination. However, the EventGraphic class is the correct way to store it.
* Fixed "walk-thru-me" bugStarla Insigna2009-01-279-43/+133
| | | | Previously, Map's checkForCollision did not properly check collision and would allow an event to initiate movement to a location another event was already moving to (but wasn't at yet).