White Dragon
New member
OpenBOR v3.0 Build 4432 (Windows/Wii/Android/PSP)
Download:
https://sourceforge.net/projects/openbor/files/
News from r4316:
internal works:
- optimized and improved new animscript code
- fixed new debug mode by DC
- reorganize menu functions with Big-endian style naming by DC
- fixed logic test wall/platform/hole
- new internal function font_string_width_max(char *string, int font): Accepts pointer to an array of strings and returns width of the largest
- some works to avoid memory waste: moving struct to pointers by DC
- engine is now running on multiple attack and body boxes by DC
- various code optimizations by DC
- added an internal function multistrcapsp() that accepts multi str arguments and concatenate them
- update translation
script updates:
- add srand(seed) to script
- added jumpspeed in entityprop
- now allowed boolean NOT operator ! for constants too
- added "porting" to openborvariants to get console version
- now keyscript can work in all menus (not in level or in select screen only)
- added noshowcomplete in openborvariants
- added playwebm(path, noskip) to script
- added entityproperty: "weapnum" and "numweapons" and playerproperty: "numweapons"
- added weaploss to entityprop:
change/get entityproperty(self,"weaploss") retrieves/set the weapon losing type
change/get entityproperty(self,"weaploss",1) retrieves/set the weapon losing flag
- added offscreen_noatk_factor in entityproperty
- added offscreenkill in entityproperty
- added new optional parameter to bindentity():
sortid. by default is -1. a binded ent has a sortid
sortid = binded_ent.sortid -1. if you set the param:
sortid = binded_ent.sortid + custom_sortid
- addded boomerang entityprop: changeentityproperty(entity,"boomrang",acceleration,horizontal_distance)
getentityproperty(entity,"boomrang",flag)
flag:
0 = acceleration
1 = horizontal_distance
- added dying optional paramin entityproperty: getentityproperty(entity,"dying",1) retrieve remap 2
- added executeanimation(entity, int anim, int resetable);
it works like performattack() but just you play an animation without animation loop.
This function avoid changeentityproperty(entity,"animation",value) loop issue!
- added "subtype" to changeentityproperty(). ex.: changeentityproperty(self, "subtype", value);
- added common_animation_normal (takeaction)
- added "custom_target" to entityprop. If set it you can force an enemy to use it as target.
- improving arrays: islast(array), isfirst(array), previous(array)
- added pausesamples(toggle);
- added trunc(double) and round(double)
- now are valid multiple assignment like: x = y = 1;
general updates:
- fixed options menu and joined cheatsmenu into optionsmenu to avoid to re-enter in menu to find cheats
- fixed label offsets in options menu
- added nodebug in models.txt. set nodebug 1 to disable debug menu in options
- spawn in not-level screen now allowed
- increase MAXQSPRITES to 5000
- added new levelorder command: "pauseoffset"
write "pauseoffset" in levels.txt to change fonts and offset of pause strings.
USAGE:
pauseoffset {font0} {font1} {xpos} {ypos} {font_pause} {xpos_pause} {ypos_pause}
- added model name in debug info (features in debug menu)
- restored counterrange conditions according to manual and added condition 4:
4: The counter will always be used and if health - attack damage <= your health will be 1 (rage).
damaged determines whether the entity will receive damage from the hit or not
- added noshowcomplete command.
set noshowcomplete 1 in a set to not show a complete screen after NEXT command.
noshowcomplete is valid for script with openborvariant too
- added ignoreattackid to animation header command:
if set ignoreattackid 1, the attack will take effect every frame
- added full save support for: skipselect, select screen, allowselect
- added offscreen_noatk_factor in model entity
- added boomerang {acceleration} {horizontal_distance} to set the boomrang acceleration and max horizonal distance for aimove boomerang
- added dying optional param {remap2}: dying {remap1} {health1} {health2} {remap2}
{remap2} is valid for {health2}
- improvement for AIMOVE2_NOTARGETIDLE (now it works)
- added subtype boomerang
- added animation getboomerang and getboomeranginair
- improved TYPE_NONE entity with try_move to allow it to is/isn't subject to...
- added followcond 5: this animation will followup as long as it hits an enemy and the target does not get killed or block the attack.
- increased max character length of followselect parameter to 1024 characters
- added shadowopacity {-2 or -1 or 0~255} to level cmd
hotfixes:
- rand32 returns positive/negative rand number
- fixed loading lag
- block_find_target() bug fixed
- fixed textobj bug
- fixed jugglepoint bug
- fixed counterrange
- fixed lasthitt on changeopenborvariant
- fixed draw box on entity (debug options) to show draw boxes Always in front of the relative entity
- fixed some animvalid checks
- fixed and conforming generate_basemap params to wall/hole params
- fixed openborvariant "current_branch" protection to invoke it wherever
- fixed internal func char *findarg(char *command, int which) that fixes bugs with getfilestreamarguments()
- fixed nojoin bug
- fixed blockback, blockpain in getentityprop
- fixed followcond 4
- fixed draw textobj bug
- fixed energycost init bug
Download:
https://sourceforge.net/projects/openbor/files/
News from r4316:
internal works:
- optimized and improved new animscript code
- fixed new debug mode by DC
- reorganize menu functions with Big-endian style naming by DC
- fixed logic test wall/platform/hole
- new internal function font_string_width_max(char *string, int font): Accepts pointer to an array of strings and returns width of the largest
- some works to avoid memory waste: moving struct to pointers by DC
- engine is now running on multiple attack and body boxes by DC
- various code optimizations by DC
- added an internal function multistrcapsp() that accepts multi str arguments and concatenate them
- update translation
script updates:
- add srand(seed) to script
- added jumpspeed in entityprop
- now allowed boolean NOT operator ! for constants too
- added "porting" to openborvariants to get console version
- now keyscript can work in all menus (not in level or in select screen only)
- added noshowcomplete in openborvariants
- added playwebm(path, noskip) to script
- added entityproperty: "weapnum" and "numweapons" and playerproperty: "numweapons"
- added weaploss to entityprop:
change/get entityproperty(self,"weaploss") retrieves/set the weapon losing type
change/get entityproperty(self,"weaploss",1) retrieves/set the weapon losing flag
- added offscreen_noatk_factor in entityproperty
- added offscreenkill in entityproperty
- added new optional parameter to bindentity():
sortid. by default is -1. a binded ent has a sortid
sortid = binded_ent.sortid -1. if you set the param:
sortid = binded_ent.sortid + custom_sortid
- addded boomerang entityprop: changeentityproperty(entity,"boomrang",acceleration,horizontal_distance)
getentityproperty(entity,"boomrang",flag)
flag:
0 = acceleration
1 = horizontal_distance
- added dying optional paramin entityproperty: getentityproperty(entity,"dying",1) retrieve remap 2
- added executeanimation(entity, int anim, int resetable);
it works like performattack() but just you play an animation without animation loop.
This function avoid changeentityproperty(entity,"animation",value) loop issue!
- added "subtype" to changeentityproperty(). ex.: changeentityproperty(self, "subtype", value);
- added common_animation_normal (takeaction)
- added "custom_target" to entityprop. If set it you can force an enemy to use it as target.
- improving arrays: islast(array), isfirst(array), previous(array)
- added pausesamples(toggle);
- added trunc(double) and round(double)
- now are valid multiple assignment like: x = y = 1;
general updates:
- fixed options menu and joined cheatsmenu into optionsmenu to avoid to re-enter in menu to find cheats
- fixed label offsets in options menu
- added nodebug in models.txt. set nodebug 1 to disable debug menu in options
- spawn in not-level screen now allowed
- increase MAXQSPRITES to 5000
- added new levelorder command: "pauseoffset"
write "pauseoffset" in levels.txt to change fonts and offset of pause strings.
USAGE:
pauseoffset {font0} {font1} {xpos} {ypos} {font_pause} {xpos_pause} {ypos_pause}
- added model name in debug info (features in debug menu)
- restored counterrange conditions according to manual and added condition 4:
4: The counter will always be used and if health - attack damage <= your health will be 1 (rage).
damaged determines whether the entity will receive damage from the hit or not
- added noshowcomplete command.
set noshowcomplete 1 in a set to not show a complete screen after NEXT command.
noshowcomplete is valid for script with openborvariant too
- added ignoreattackid to animation header command:
if set ignoreattackid 1, the attack will take effect every frame
- added full save support for: skipselect, select screen, allowselect
- added offscreen_noatk_factor in model entity
- added boomerang {acceleration} {horizontal_distance} to set the boomrang acceleration and max horizonal distance for aimove boomerang
- added dying optional param {remap2}: dying {remap1} {health1} {health2} {remap2}
{remap2} is valid for {health2}
- improvement for AIMOVE2_NOTARGETIDLE (now it works)
- added subtype boomerang
- added animation getboomerang and getboomeranginair
- improved TYPE_NONE entity with try_move to allow it to is/isn't subject to...
- added followcond 5: this animation will followup as long as it hits an enemy and the target does not get killed or block the attack.
- increased max character length of followselect parameter to 1024 characters
- added shadowopacity {-2 or -1 or 0~255} to level cmd
hotfixes:
- rand32 returns positive/negative rand number
- fixed loading lag
- block_find_target() bug fixed
- fixed textobj bug
- fixed jugglepoint bug
- fixed counterrange
- fixed lasthitt on changeopenborvariant
- fixed draw box on entity (debug options) to show draw boxes Always in front of the relative entity
- fixed some animvalid checks
- fixed and conforming generate_basemap params to wall/hole params
- fixed openborvariant "current_branch" protection to invoke it wherever
- fixed internal func char *findarg(char *command, int which) that fixes bugs with getfilestreamarguments()
- fixed nojoin bug
- fixed blockback, blockpain in getentityprop
- fixed followcond 4
- fixed draw textobj bug
- fixed energycost init bug