Skip to content

Releases: defisym/OpenFusionExamples

FFMpeg_MultiInstance Ext B230110

10 Jan 14:30
Compare
Choose a tag to compare
Pre-release

Multi instance version, requires FMod.

Anime used in this demo video is Nijigasaki idol club S2

FFMpeg Ext B221022

23 Oct 01:26
e1c9bb3
Compare
Choose a tag to compare
  • Bug fix
    • fix crash if output pixel format matches input pixel format
    • default duration if both format context and stream don't have valid duration
    • protection when codec context returns AV_PIX_FMT_NONE as pixel format
    • drain codec context to flush buffered frames
    • fix global data memory leak
    • fix pause / resume doesn't work due to condition get incorrect finish state
  • Enhancement
    • optimize file open probe size to speed up opening complex format like mp4
    • reduce data convert when accurate seeking frame
  • New feature
    • on error condition to let you handle errors
    • open video to a specific time stamp
    • hardware decode
    • stretch
    • set audio tempo

FFMpeg Ext B220922

22 Sep 15:59
Compare
Choose a tag to compare
  • Fix negative duration when stream doesn't contain info
  • flag didn't pass into SetPositionWithFlag
  • accurate seek
  • optimized to reduce data copy
  • get state in A/C/E
  • load action file path not updated
  • loop action not updated
  • Crash in Expression_GetCurrentVideoFramePointer
  • use default value if given Queue size is negative
  • reset frameTimer after seeking
  • Condition_OnVideoFinish not trigger
  • if video is looping, then play state will ignore finish state
  • Optimize mem loader
  • cache
  • filepath not reset after close
  • Optimize SDL_OpenAudio

FFMpeg Ext B220916

16 Sep 09:09
Compare
Choose a tag to compare
FFMpeg Ext B220916 Pre-release
Pre-release
  • fix volume control not work
  • add protection for set position
  • crash when load a new video with different resolution
  • crash when frame data has padding
  • alpha support for mov files
  • seek with flag
  • set queue size (if default size is not enough then some formats may not play)

FFMpeg Ext B220913

13 Sep 16:19
Compare
Choose a tag to compare
FFMpeg Ext B220913 Pre-release
Pre-release

First beta!
首个测试版!
最初のベータ!よろしく♪

Android Utilities Ext B220723

17 Jul 14:44
Compare
Choose a tag to compare

Extract binary files.

FindTheWay Ext B220424

24 Apr 03:39
Compare
Choose a tag to compare

What's new

  • Android support!

image

Note: SetMapByPicture, SetMapBySurface is unusable due to platform limitations

  • isometric

need not to care about coord conversion, extension will handle it all for you.

image

  • debugger

image

  • Disable incompatible A/C/Es

image

  • new action: CreateAOEByName, CreateGrid, SetGridSize, SetMapByActive, SetMapBySurface

Bug fix

  • memory Leak in SetMapByPicture
  • protection for null LPRO
  • protection for non active object
  • fix size_t layer = -1 overflow
  • fix default layer = 2
  • fix possible crash when loading from surface due to /MT
  • LPCTSTR->LPCWSTR
  • update map when output
  • don't stash if stash is off when finding

Known issue

If you encounter grid offset in android:

image

please unzip ext and navigate to CRunFindTheWay.java

import static _3rdLib.ObjectCreationClass.GetEvtParam;
import static RunLoop.CRun.OBSTACLE_TRANSPARENT;

public class CRunFindTheWay extends CRunExtension {
    // TODO DEBUG
    private static final boolean DEBUG = true;
    // private static final boolean DEBUG = false;

    // Define ACE ID here
    // Condition
    final int CND_CONDITION_SMBS = 0;
    final int CND_CONDITION_SMBB = 1;

then toggle DEBUG flag.

Fini Ext B220415

15 Apr 13:30
Compare
Choose a tag to compare

Fini Update 220415

New features in brief

This update allows you to save/load all alterable values of one object in one event, compatible with 2.5/2.5+/2.5+ allow for string & counter.

Properties

  • Settings
    • 2.5 Plus
      • used when saving object's alterable value, as 2.5+ unlimited alterable values has a different data struct as 2.5
    • Allow alterable values for counters and strings
      • only available when 2.5 Plus is checked, to determine save string & counter's alterable value or not

Action

  • Load Alterable Value
    • load from base64
  • Load Position
    • load from base64

Expression

  • Save Alterable Value
    • Save alterable value/string/flag to base64
  • Save Position
    • Save to base64

FindTheWay Ext B220406

06 Apr 13:16
Compare
Choose a tag to compare
Pre-release

FindTheWay

Description

A* Path Find, open source, 5X faster than Path Finding Object, all runtime compatible.

Properties

This object has no properties

Terminology

  • Map type

    • Map is split to two part, terrain & dynamic, you don't need to compare if it's obstacle before handling dynamic part
    • the real map will be generated automatically once needed
    • Set : terrain & dynamic
    • Retrieve : real map & terrain & dynamic
  • Cost

    • 0 ~ 255, 255 = obstacle, others = path
  • UseRealCoord

    • convert input to gird coord
  • UseIterateCoord

    • use internal coord in On ... events
  • Path name

    • keep it empty to retrieve last path

Action

  • Continue

    • This extension put find/calc area in condition to check if params area valid. If you don't need following actions immediately, use this action to avoid fusion remove the empty event
  • Set Stash

    • with this on, path & area will be stashed, then retrieve it with out calculate if states are the same (map/zoc/ignore flag, etc.)
    • stash will be clear automatically once map updated
    • disable stash will clear everything stashed
    • disable this may slightly improve performance as the state hash process is skipped
    • disable this if you encounter hash collision
  • Set Map

    • Set Map

    • Set Map By Object

    • Clear Map

  • Path

    • Iterate Path
  • Area

    • Create Object Zoc

      • iterate zoc position for object, auto create zoc area, coord param is ignored
    • Create Object Zoc By Name

      • same as above
    • Create Object Zoc By Event

      • iterate zoc position for object, trigger On Create Object Zoc for you to create real zoc area
    • Set Zoc By Object

    • Clear Zoc

    • Set Unit By Object

    • Clear Unit

    • Iterate Area

    • Create Area Once

    • Create Area By Name Once

    • Create AOE

      • Create different AOE area, check appendix for type declaration

Condition

  • Map

    • Map Available

      • extension maintains a internal class to handle everything. This class will be destructed then re-construct with new params in Set Map conditions. If params are invalid, those conditions will return false and all A/C/Es rely on this class will do nothing/return default value, use this to debug
    • Check Map Cost At Coord

    • On Map Update

      • once you update terrain or dynamic, extension won't update the map immediately as you may set multiple points
      • usually map is updated before find/calc area if needed, then this condition will be triggered
  • Set Map

    • Set Map By Size

    • Set Map By Base64

    • Set Map By Picture

    • Set Map By Collision

      • you can let extension retrieve collision of layers, or call On Set Map By Collision for each gird for you to check & set collisions directly
    • On Set Map By Collision

  • Path

    • Path Found

    • Path Available

    • On Iterate Path

  • Area

    • Zoc Valid

      • not at obstacle or unit
      • need to update unit before using
    • Zoc At Area

      • check if zoc at calculated area
    • On Create Object Zoc

    • Calc Area

      • Line mode
        • no obstacle from start to the range (e.g., laser beam)
        • allRange & allRangeAttackRange are ignored in this mode
        • if attack is true, ignore flag will be taken into account
        • if attack is false, both map collision & all unit are taken into account, for skills that push/pull unit
      • Ring mode
        • if allRange is true, range will be used as move range, and allRangeAttackRange is used as maximum attack range, both move & attack area will be calculated in one short, e.g., danger zone of enemy.
    • On Iterate Area

    • On Iterate Attack Area

      • if you Calc Area in all range mode, this condition will be true when iterate attack area in On Iterate Area
    • Able to Iterate Area

      • if you want create areas procedurally by Iterate Area with param once, this condition is here for you to check if it is able to iterate.
  • Object

    • Select

      • Select All

        • save fastloops when click on an area, move character to that point, then destroy all areas
      • Object At Gird

      • Object At Coord

      • Object At Obstacle

      • Object At Object

        • check if former object and the latter object has the same gird coord
      • Pick One Object At Object

        • only display one instance when overlapping itself
    • Non-Select

      • No Object At Gird
      • No Object At Coord

Expression

  • Iterate

    • this values are shared by all On ... events, please do not nest them

    • Get Iterate X

    • Get Iterate Y

    • Get Iterate Index

  • Gird

    • Get Gird Coord
    • Get Real Coord
  • Map

    • Get Map Cost

    • Get Map Base64

    • Get Map String

    • Get MapType Map

    • Get MapType Terrain

    • Get MapType Dynamic

    • Get Map Cost Path

    • Get Map Cost Obstacle

    • Get Map Cost Valid

  • Path

    • Get Step
      • the same as Path Found but return steps directly, save events when calculation AI
    • Get Step of Path
    • Get Step Coord of Path
  • Area

    • Get Ignore Flag

      • ignore means this point doesn't treat as obstacle
      • A/C/E that requires this param need to update zoc/ally/enemy first to make ignore works properly
    • Get Available Line Range

RandomTable FE Ext B220329

29 Mar 12:48
Compare
Choose a tag to compare
  • Refactor random table to custom base64 lib instead of windows API
  • Implement A/C/Es
    • Get N Random Number Average
    • Get Current Random Table with NewLine Support
    • Get Random Percent