#arma3_tools

1 messages Β· Page 25 of 1

nocturne basin
#

🀷

#

always can use that

sick verge
#

Nah I need it automated as part of a tool I'm writing

glossy inlet
#

Use the ingame config browser

sick verge
#

Yeah but I meant from outside the game

glossy inlet
#

But no not really. If you cannot see everything.. you cannot know everything

#

If you load every single config. then you have all the info. If you don't. then you miss whatever was in the configs that you didn't load

nocturne basin
#

which reminds me that sqfvm requires some pbo parsing

sick verge
#

Well that's bad news... But thanks anyways

nocturne basin
#

and binarized pbo config parsing

#

and ... parsing parsing

glossy inlet
#

there are no binarized pbo's

#

you mean compressed?

nocturne basin
#

configs*

glossy inlet
#

or header encryption?

#

Ahh Yes.

nocturne basin
#

quite a lot of stuff still to implement 🀷

#

but as soon as pbo parsing more or less hits the fan, one could do what you want with sqfvm @sick verge

glossy inlet
#

Raven didn't even say what he wants tho πŸ€”

nocturne basin
#

🀷 but it would be

glossy inlet
#

I'd say the first CfgFunctions>>A3 definition is probably in functions_f.pbo's config. Did you check that? just always load that one

sick verge
#

Let me have a look

#

My goal is to automatically list all declared functions based on the PBO's content in order to not have a hard-coded list that needs manual updates

nocturne basin
#

hah πŸ˜„ so i was right πŸ˜›

sick verge
#

Indeed it is @glossy inlet πŸŽ†

#

Btw. Are configs case-sensitive?

glossy inlet
#

"no" in quote marks

#

it depends.

sick verge
#

I always thought yes but I just stumbled upon a _bla >> "cfgfunctions" statement. So is it the >> operator that is being case-insensitive or configs in general

glossy inlet
#

some entries are. some are not.
Some classnames are. Some are not.

#

the >> operator.. well.. hard to explain actually

#

config classname lookups are case insensitive

#

but the name is translated in same case into a script or a weapon classname. So any script might treat it as case sensitive if it wants to

#

some engine parts also treat some things as case-sensitive

sick verge
#

Basically my question is would

class CfgFunctions
{
    class a3
    {
        ...
    };
};```
also chzange the tag to "BIS"?
glossy inlet
#

but things like
class AbC
and class aBc are the same

#

yes

sick verge
#

Okay thx

#

Can the config.bin be located in an arbitrary sub-dir of the addon? Or does it have to be located directly in the addons directory?

#

Because to me it seems that TFAR only has it config files in further sub-dirs πŸ€”

vague shard
#

BI sometimes includes one sqf into another

#

did you check this is not the case here? (didnt read the whole convo)

sick verge
#

That's actually a new topic xD

#

Or was that a comment on the whole config-stuff @vague shard ?

vague shard
#

on A3 vs BIS tag

#

its probably not the case here, but just to make you aware of some weird stuff BI does

sick verge
#

Ah okay. No I didn't check but the AIO config seemed to have proven that the internal config structure is responsible for that

#

Yeah they don't make their community's life easy figuring their stuff out

vague shard
#

config can be in any folder level

#

there has to be one in the root though

#

that said might be just a tools standard

#

not sure what the engine actually requires

#

you should just scan from the namespace/prefix set in the header all subfolders

sick verge
#

I believe it has to be in the addons folder... I thought the GitHub structure was a reflection on TFARs PBO structure but it is not. That's what confused me

#

In the PBO it does have a config.bin in addons

smoky halo
#

You can always execute utils 2 in debug console and then type cfgFunctions it will show you all functions and where they were defined from

vague shard
#

@sick verge addons folder has no relation to configs itself

#

the game scans dta and addons folders from various locations for pbos

#

the pbos itself are just a container with the header containing the prefix/namespace to build the virtual data system

sick verge
#

Wait... I got confused. What I meant to say was that the config.bin has to be in the root of the PBO ☝

#

@smoky halo that's good to know. Never heard of that before πŸ’‘

glossy inlet
#

@sick verge configs can be in any subfolder

sick verge
#

Without being included in the config.bin in the root of the PBO? @glossy inlet

glossy inlet
#

doesn't matter

#

all config's in all directories are loaded

#

there doesn't have to be one in the root

sick verge
#

So any file named config.bin will be loaded... Interesting. Look like I have to change some code xD

#

Thanks

smoky halo
karmic niche
#

Theo, do you have a parser for A2S_RULES that is proven to be working? You seemed to be knowledgeable in that area.

I'm trying to check 193.30.120.58:2333 and the returned rules contain the following keys:
[b'\x01\x01', b'\x01\x02', b'\x02\x02'] <- Note: that's python notation so the b'...' part is normal

So it looks as if there were two sets of rules (WTF?!?), one containing 1 chunk and another one containing 2 chunks. How am I supposed to parse those? I'm asking especially that this single-chunk "set" differs from the two-chunk "set" concatenated. 😐

#

@tribal mist

#

I also found another server with such a strange response: 139.99.144.72:2303 (3 and 4 sets of chunks)

tribal mist
#

@karmic niche I have an implementation that I wrote in python3 actually, for a discord bot. It seems to work with that first server, but not the second. Going to look at that myself in a second here. But that's as close to "proven working" as I can get.

#

Before I send this link though, I want to say, that I am by no means a professional python programmer, so don't hate me for my (hopefully not very) bad code.

#

The comments reflect my feelings attempting to implement it

karmic niche
#

Wow, thanks! I wasn't hoping for such a quick answer πŸ˜ƒ

#

I was actually just going to sleep and thought I'd send you a message so that you could reply when you'd have time.
I'll see what are the differences in the implementation between your code and (a modified) python-valve that I'm currently using

tribal mist
#

Sounds like a plan, let me know if you have any questions

karmic niche
#

The comments reflect my feelings attempting to implement it
You mean like this one: "[{}:{}] Unpacking and Assembling Rules for Arma3, fuck me."? πŸ˜‚

tribal mist
#

That's definitely one

slim solar
#

any one have an active net reactor license? PM pls

silver glade
#

The timestamp in meta.cpp from what I've read its suppose to be UNIX. But its way too long to be seconds. What is the value format actually?

Referencing

/// Version of meta.cpp content
protocol = 1;
/// Steam Workshop item id
publishedid = 123456790;
/// Steam Workshop item name
name = "Splendid mod";
/// Time of last update of the Steam Workshop Item (in Unix time format)
timestamp = 9876432101234567890;
/// Mod hash that is send by the server to the client instead of calculated hash)
hashOverride = 1234567890;
tribal mist
#

It's smaller than even microseconds or something

glossy inlet
#

https://www.epochconverter.com/ you can use that.

Assuming that this timestamp is in microseconds (1/1,000,000 second):
GMT: Thursday, 21. December 2282 13:21:41.235

πŸ€” mhhh

fallen stone
#

Considering we haven't had an Unix time of 9*****.. in any manner for well over 10 years, something seems a miss :)

#

Is that example correct or just random?

#

Given that it's almost 9->0 0->9 πŸ˜„

glossy inlet
#

"Splendid mod" and hashOverride = 1234567890 makes me thing this is just a example with random numbers

fallen stone
#

πŸ˜‹

smoky halo
#

You think? πŸ€”

scenic canopy
#

@silver glade it's unix timestamp, be aware that not all workshop items contains a meta.cpp file

silver glade
#

@scenic canopy I get that much. What I'm trying to figure out is what is going on with the timestamp? There are way too many digits. If it was seconds it would be 1538039680 if it was updated right now.

#

It doesn't matter if it is microseconds the numbers are still off

glossy inlet
#

Look at a real one. Instead of a example with completely made up numbers

silver glade
#

I looked at over 100 ones

#

let me run a script and pull the pattern

#
5248421769875578907
5248413287929990474
5248183655353538077
5247814371652315063
5248386364348507668
5247956401437841987
5248364442738340992
5248146497520065743
5248367058127013055
5247940541710681134
5248421804591128365
5248300592720839376
#

There is a very short sample

karmic niche
#

Those mods aren't 10-year-old, right? :)
Because 5248364442738340992 >> 32 is 1221929327 (September 20, 2008)
[that was just a guess, of course, and it doesn't seem to be correct]

nocturne basin
#

No Wories
Normal unix timestamp

#

Just in valve time

tribal mist
#

ha

scenic canopy
#

as I said previously, the meta.cpp doesn't exist for all mods

#

I use the acf file for my web manager

#

and the acf one uses same timestamps as the web api

slim solar
#

any one have an active net reactor license? PM pls

nocturne basin
#

can you stop spamming that question @slim solar ?
besides the fact that if somebody would have, he would already have PMed you, you also did not disclosed why you want to talk to somebody who actually has one

slim solar
#

no, i can't stop spamming that question , because i am not spamming it

#

only put it twice

#

Maybe i don't say why i need one, but i say if anyone have one, pm me its easy

#

Maybe anyone read the first time because, hour is not correct to put it

nocturne basin
#

only put it twice
https://en.wikipedia.org/wiki/Spamming
Spamming is the use of messaging systems to send an unsolicited message (spam), especially advertising, as well as sending messages repeatedly on the same site

Today at 5:46 PM
Yesterday at 6:33 PM

"not spamming"

#

and the worst part is you post a "need stuff, PN me if you got stuff" message

slim solar
#

i am not advertising anything

#

and repeteadly , not twice

#

thanks and bye

#

πŸ˜ƒ

rough grove
#

Is there a way to use wildcards with MoveObject

vague shard
#

for file type yes. check the readme

vague shard
#

looks neat. unfortunately no docu

karmic niche
#

And judging by the repo no source code either :P
(One 100 lines of code python file)

scenic canopy
#

depending on what you need Travis CI, AppVeyor, CircleCI etc is good enough

#

even upload to steam workshop is possible with most common CI tools

glossy inlet
#

I'm using AppVeyor. Just calling mikeros tools via cmdline and done.

scenic canopy
#

we have our own steam workshop uploader for usage with games that don't provide their own tools such as Squad etc

#

but BIS steam publisher works good from CLI

#

if you don't want to run a steam client, steamcmd works good too

#

just create a dummy vdf with required paths and it works just fine

vague shard
#

anyone using CI with gitlab and multiple git repositories or everyone on github (and single repo) here?

scenic canopy
#

gitlab, github, phabricator svn, custom svn so far πŸ™ˆ

vague shard
#

one repo or multiple?

scenic canopy
#

the custom svn does multiple checkouts although from one repo

vague shard
#

so you do a clean build for each commit? or just with nightly build?

scenic canopy
#

each checkout path is reverted and update to latest commit

#

gradle checks if path is changed before building

vague shard
#

whats the most simple CI? all these systems are quite complex and feature/configuration "bloated" (travis ci and gitlab seem no go 😦 )

our requirements are:

  • build on commit (or low cycle time for check)
  • optional: nightly builds
  • working with gitlab
  • with multiple git repositories
  • our server is windows 7 in a VM
  • execute batch files to binarize or pack to pbo, upload to steam (via steamCMD)
  • optional: upload to mega/google drive

forgot:

  • private repos
  • non open source
scenic canopy
#

travis only works with github

vague shard
#

currently looking into jenkins but getting a headache from the billion options

scenic canopy
#

that's all our jenkins config for our JSRS compat mod

#

I should move that steam workshop tool to a env variable πŸ™ˆ

#

builds all commits and PRs

#

only publishes to steam for master branch

#

the rest can be downloaded as artifacts if someone wants to test locally

#

on jenkins side the only config is git credentials + the SFP org is added with those credentials

#

same for svn etc but svn credentials and specific repo url instead of catch all

vague shard
#

thanks. looks simple indeed. however you use github and just one repo here, right?

scenic canopy
#

same for svn

#

but that jenkinsfile is hosted inside the private repo

#

and some loops for the extra svn checkouts

#

so only FFP mod was changed, the rest are ignored

#

gradlew build_mod_ffp is the build step

#

everything before is checkout of a couple of paths

#

and everything after is upload to steam, saving artifacts and discord hook

vague shard
#

so you set up a separate job for each to avoid concurreny issues? (and not multi project)

scenic canopy
#

so that's 13 mods with around 3 - 20 PBOs each

#

separate jobs for concurrency πŸ˜ƒ

#

so with multiple build slaves we can build all mods concurrently

vague shard
#

arma tools/mikero tools/armake not having issues with that? (temp folder or else)

scenic canopy
#

each build gets a unique folder from jenkins automatically

#

built mods and pbos are managed with config files in the repo

#

so no configuration in jenkins is needed

#

when creating a new mod or pbo, the config can be updated within the same commit

vague shard
#

i guess i will try a more simple setup first:

  • execute job every hour/or once as nightly build
  • run batch file to update all local git repos
  • run batch file to pack all repos to pbo
  • run batch file to initiate upload to workshop
#

saves me the gitlab plugin auth stuff for commit hook, setting up for all the 10+ projects/repos individually

#

do you have a manual build option via website or sth? (or just within local jenkins interface)

scenic canopy
#

jenkins ui

#

gitlab and github uses webhooks

#

svn is being polled every 15 minute for changes

#

or something like that πŸ˜›

#

pro tip is being able to run all stuff locally

#

helps a lot with troubleshooting and development

vague shard
#
fallen stone
#

You just need to make a POST req. to the webhook URI, you can do that with anything πŸ˜ƒ

scenic canopy
#

Some jenkins plug-in yes, my PR for pipeline support was accepted

#

Don’t remember which

#

I can check

vague shard
#

@fallen stone the point is what are useful approaches

#

just to send data/information is not be itself meaningful or useful

vague shard
#

those doing CI - do you do anything else besides build and distribute?
like -autotest, lint checking configs, checking for missing files, performance tests or other things

tribal mist
#

Just build and distribute here, although I'd like to start linting things if I could keep track of which linting tools were up to date and had active development

#

(assuming we're talking building arma addons)

vague shard
#

rapify -L and makePbo -G i use so far

scenic canopy
#

autotest all models in game, pboproject checks for missing file and syntax, sqflinting

#

haven't added rpt parsing for the autotest yet for issues

#

did some work on fps measurements for islands too

#

so you get a heatmap of troublesome areas

#

oh yeah, screenshoting of objects placed on roads with its coordinates as image name

vague shard
#

pretty neat πŸ˜ƒ

#

do you run all these each build/nightly build? the last two i would imagine not or?

scenic canopy
#

nightly

sick verge
#

Is there some documentation on the Arma-Preprocessor? I always thought that it would simply use a normal C-preprocessor but this doesn't seem to be the case πŸ€”

glossy inlet
#

besides the biki. no

sick verge
#

And by documentation I am referring to a description on how it expands macros and stuff like that... Not how to use it

glossy inlet
#

It's "mostly" a normal C-Processor.. Just with some "minor" recessions

sick verge
#

Great ^^

fallen stone
#

Take it literally

glossy inlet
#

I think Armake's one is quite good. If you wanna look at code

fallen stone
#

Don't use any c preprocessor implementations (gcc's) etc, it'll shit the bed with the commas and a few others bits n bobs

sick verge
#

Yeah I just tried the gcc-preprocessor but it doesn't even recognize relative file-paths referencing the parent dir ("..\stuff")

fallen stone
#

What did you expect it to do?

glossy inlet
#

That's weird.. Maybe it wants ../ instead of \ ?
Including from parent directory should work. Atleast the microsoft preprocessor can do that

sick verge
#

Oh well that could be... Given I'm on Linux xDD

#

🀦

fallen stone
#

Ah you're testing includes

sick verge
#

As an example... My actual goal is being able to preprocess SQF and config files

glossy inlet
#

I always wanted to add that to armake. It would be really easy to do.. But the C code is just giving me a headache everytime I look at it

fallen stone
#

I'm not sure if gcc will handle \ as dedmen said

smoky halo
#

their preprocessor is a custom one and not a very sophisticated one

sick verge
#

And I thought I could rely on an existsing C-Preprocessor-Implementation for that... Buuuut that idea got busted

#

But the C code is just giving me a headache everytime I look at it
Yeah same here

fallen stone
#

The engine preprocessor comes across far too permissive, which conflicts heavily with normal implementations like cpp

smoky halo
#

I think something like that is valid for BI preprocessor: #include<blablabl

#

notice the missing closing >

glossy inlet
#

Arma auto-ends strings at EOF. So if there's EOF after that then probably yeah

sick verge
#

If one was to implement a preprocessor what features would it need?

  • resolving includes
  • defining/undefining macros
  • #ifdef-statements
  • macro expansion
    Anything else?
glossy inlet
#

everything on the preprocessor biki page

#

there are magic macros like __LINE and such

sick verge
#

true.. forgot about those

fallen stone
#

I tried preprocessing the CBA macros some time back whilst writing something, cpp had a field day with things of the form

#define MACRO(..) MACRO2(format [..., .., .., ..])

Was quite amusing

smoky halo
#

__EXEC, __EVAL

sick verge
#

And comments obiously πŸ‘†

glossy inlet
#

If you want to completely want to replace the preprocessor then you also want placing of #line directives. And you might wanna replicate the line number bug too in case someone relies on it..
Generally someone always relies on something

sick verge
#

I want the preprocessing mostly as a preparation for any performed linting... So no need to reproduce bugs ^^

#

Can a macro be used above it's definition? Like so:

MY_MACRO

#define MY_MACRO hint "test"
glossy inlet
#

no

sick verge
#

Okay that makes things a little easier

glossy inlet
#

also macros inside '' are resolved. But not inside ""

#

That one is probably not documented on biki

sick verge
#

Indeed it's not documented...

#

And I guess macros are not matched as whole words only? So no substring-replacements

glossy inlet
#

correct. whole word only

sick verge
#

Thanks πŸ‘

glossy inlet
#

where - seperates different words. But _ doesn't.. Or was it the other way around? πŸ€”
Also you cannot have commas in macro arguments unless the comma seperates different arguments
That's why CBA has ARR_X macros to add the commas back

smoky halo
#

here is the core of the Preprocessor:

nocturne basin
#

Anybody here interested in creating some console based rpg framework (and later game)?
Will be written in c

Just Hobby project 🀫

vague shard
scenic canopy
#

I should probably release my discord bot for that πŸ™ƒ

vague shard
#

yep you should πŸ˜‰

wind coral
nocturne basin
#

@wind coral not looking for actual ppl πŸ™ˆ just Was some Γ–ffner mostly

wind coral
#

@nocturne basin You looking for code monkeys then?

nocturne basin
#

Nah
Just ppl looking for a Hobby πŸ€·β€β™‚οΈ

wind coral
#

Hmm.

sick verge
#

@smoky halo thank you

sick verge
#

You don't happen to also have the code for TryExpandMacro(in,*out) as well?

vague shard
#

however for more info we are to use a separate git repo with its notifications and such (thanks to zakant for the idea). far easier to set up and convenient than more traditional CI means

scenic canopy
#

you can change the text sent

#

we send links to download the built mod etc

#

and to link the entire log

vague shard
#

well we push to separate Steam branch directly. so no download artefacts
was conidering it at first for logs and such, but as said using a git repo for that is actually far better imo

#

we dont want to expose the build server via webserver either. it has its benefits/pros but the effort and risks involved dont allow it

scenic canopy
#

put auth in front of it πŸ˜ƒ

#

each to his own πŸ‘

vague shard
#

well its not our server you see πŸ˜ƒ

vague shard
#

is it possible to subscribe to a mod via encoded url?

#

debugging the workshop page the closest i managed was that JSON code

{
    $('action_wait').show();
    $('PublishedFileSubscribe').request( {```
#

starts with
<a onclick="SubscribeItem();" id="SubscribeItemBtn"
then in that function it calls
SendSubscribeItemRequest();

scenic canopy
#

you can deeplink to the native steam client

#

subscriptions can be made through the steamworks sdk

#

but that requires a native application

#

steam://url/CommunityFilePage/497660133

#

thats a deep link to cup weapons

vague shard
#

thank you! thats almost as good and should to the job

sick verge
#

As I understand it correctly (from the code T_D has provided) all preprocessor statements have to be at the start of a line (with potential leading whitespace). Therefore code like this:

/* 
 * My Blockcomment
 */ #define BLA

should be invalid. Is that correct?

elfin oxide
#

yes

#

but if the comment is removed first

#

it wont break it

#

something like if(true) then {} #define lol 123 does not work

sick verge
#

Okay, Though as far as I can see from the implementation T_D has given the comments don't get removed in a first round of preprocessing (unless one was to preprocess the file twice)

#

And right another question on the preprocessor-topic: Does an #undef -statement consume the rest of the line it's standing in (like a #define)? E.g.

#define MY_MACRO
#undef MY_MACRO hint "will this be present in the code?"
fallen stone
#
all preprocessor statements have to be at the start of a line (with potential leading whitespace)

Correct

And right another question on the preprocessor-topic: Does an #undef-statement consume the rest of the line it's standing in (like a #define)?

No, anything after the whitespace is read on the next scan, it just cannot be a pre-processor command (therefore your hint will show)

#
Okay, Though as far as I can see from the implementation T_D has given the comments don't get removed in a first round of preprocessing (unless one was to preprocess the file twice)

They do. Skip refers to them not being written to the out stream (with the exception of new lines, they still are)

sick verge
#

Yeah they are being removed but as far as I can tell they aren't removed before the actual preprocessing is done but during the preprocessing leading to preprocessor-statements in the same line as the end of a block-comment to be skipped as there is no newline before them (as this is included in the block-comment)...

fallen stone
#

Yes, actively removed in the same parse, not prior

sick verge
#

πŸ‘

fallen stone
#

As a side effect of how they handle that, preprocessor commands after the block comment (on the same line), will be copied to the out stream verbatim, so when ran, it still contains the #define etc, giving you something like invalid num in expr

nocturne basin
#

btw. spaces etc. in front of macros are OK

fallen stone
#

I.e, it does not differentiate between that case, and the case you write hint 'blah blah', the latter is just not a syntax error post preproc

sick verge
#

I figured. But thanks anyway

sick verge
#

Are all newlines in the file kept during preprocessing or only those in comments and outside of preprocessor-statements? (Specifically I am referring to NLs inside #defines or in #ifdef-blocks, etc.)

fallen stone
#

You mean

#define X Y\
          Z
```?
#

(If so, those newlines also remain, goes for everything apart from ifdef blocks*, I think)

sick verge
#

Yes exactly

#

So the block in an ifdef that is not being expanded doesn't account for any newlines either?

fallen stone
#

Almost

#

if the ifdef block isn't expanded, it'll account for one new line

#

But all the newlines in an expanded block, will be present

#

That includes preprocessor lines aswell, etc

#
#ifdef TEST // first
// second
#define TEST2 // third
#endif // fourth
#

it's pretty backwards

#

These details seem somewhat irrelevant if you want to create a linter though

#

As long as you preprocess in the same manner as the engine, you'll be fine. Newlines are irrelevant in the output

#

Make sure you just keep line directives if needed

sick verge
#

Alright thank you πŸ‘

#

Yeah I know... But while I'm at it I thought I might as well create a preprocessor as close to the original as possible (without having to put in too much work for it)

glossy inlet
#

If the preprocessor removes newlines it should inject a #line macro so that the line numbers of error tracking are correct

#

Which is bugged if you have a #include after a multiline comment at the start of the file Β―_(ツ)_/Β―

sick verge
#

πŸ˜…

swift apex
#

Is there a way for Object Builder to automatically remove Named Properties and new ones via script?

vague shard
#

@swift apex can do via o2script or dep3d by mikero

swift apex
#

never herd of 02script

vague shard
#

its basically sqf for O2/OB

swift apex
#

is it something u download?

#

or write @vague shard

vague shard
#

its in O2script folder of O2/OB

#

are you into scripting in the first place though?

icy elm
#

hello guys, i used DSUtils to make a .bikey for my mod pack, when i join my server get disconnected after 10 seconds with the message "session lost" i dont know why

vague shard
#

you can test your key and sign files locally with -checkSignatures startup cmd

#

that aside usually lack of admin permissions or sth else wrong with windows leads to faulty keys

icy elm
#

where can i find the startup cmd

vague shard
#

should be in A3 launcher advanced tab too

icy elm
#

found it, so now i only have to start the game right?

#

i get this error

scenic canopy
vague shard
#

whats the situation with the virtual P drive? is this available for windows now (without having to compile sth yourself/etc) - simple install and go type?

glossy inlet
#

yeah

#

Well...

#

The latest published build works I guess.

#

nvm.. @scenic canopy never pushed the latest build

#

and still didn't accept my pull requests πŸ˜„

scenic canopy
#

published build? πŸ˜›

glossy inlet
vague shard
#

@scenic canopy all our hopes and prayers are with you πŸ“Ώ

scenic canopy
#

πŸ˜ƒ

dawn palm
#

for those of you who may not know this, an SDK exists for my dll. It is free, and is compatible with the free version of my tools (and always will be). You can rap/derap, make/extractpbo pbo in about ten lines of dos console code. Gui wrappers are obviously a lot more than that.

Source code examples are provided for all bis file formats and how to access them. The SDK, like the dll, has existed for nearly 2 decades. That might give you some idea of both the stability, and maturity of the product since the API functions haven't changed from the time of CWC demo. and will always remain backward compatible. That's another garantee.

#

Oh, and it's also penguin friendly 😎

#

A single, visual basic wrapper example is also provided. Solely for the purpose of understanding the rules to create wrappers for java. php, jason, dotNet, or poison of choice.

vague shard
#

@dawn palm (asking the dump question) where to find the docu and sample for that? via DM to you or otherwise?

dawn palm
#

ummm i released it to.... hmmm let me check

#

mikero_sdk.6.88.rar & sdk_samples.rar (in subscriber) not sure about free, haven't checked (yet)

#

ah, they're in free, but i forgot to publish them.

#

fixed

swift apex
#

Is there a way to pick faces that is facing one side of the plane?

#

for instance, I'm UV Mapping the front of a vehicle, and I don't want the faces/points facing upwards of the front of the vehicle

#

cause uv mapping will distort it

sly skiff
#

I hope you are not doing it in Object Builder

#

as the UV mapping tools there are very basic

#

and imo should not be used

#

since youve talked about this on #arma3_model best continue there

swift apex
#

how would one go about using 02 script for object builder? Do I have to write a script from scratch?

smoky halo
#

there are some samples in the Object Builder directory

dawn palm
#

For those who remember 'binpbo' from arma2 (the older addon builder) : it was written in o2script. Same for pboProject in it's infancy.

#

02script is the sqs programming language with extra verbs to create (and respond to) dialog panels

#

The comref for 02script is reasonably accurate. some, few commands ,don't actually work as advertised. The only variation in code syntax is the @ operator for arrays which replace the more usual var select 1 2 3 etc

vague shard
#

is there some way to get stats on Tanoa usage, or DLC ownership?

karmic niche
#

@vague shard you're asking about your own players or are you asking bohemia representatives about global stats now?

#

Because if it's about your own players, then AFAIR we're checking for the existence of some specific classes and if so, we're opening yes.html or no.html with htmlLoad and then just grep the web server's logs. Talk about poor man's statistics πŸ˜„

#

@dusky dune

vague shard
#

overall A3 player stats and ownernship

#

like did APEX sell well, did the Tanoa exclusive approach work out or not

#

and is Tanoa a good, working terrain for players, or does it actually have issues with performance, AI and PvP playability

smoky halo
#

It definitely has worse performance than Altis, anywhere up to 50% less fps at its worst and unfortunately it is in the sort of places that are most problematic, ie inside the towns. It does also have AI issues with spotting specifically, the game was rebalanced to have very short spotting distances of sub 300m all the time for infantry to stop crazy spotting and if you mod it back to working in open terrain you can't actually fix it properly because the range adjustable in the AI spotting skill is only 100m or so, so you choose either 200-300 or 600-700 but you can't have 200-700. This has degraded the value of cf_bai that adjusts the spotting skill based on jungle density to try and rebalance the game. We have a video up on the performance issues where we compared altis and Tanoa performance, I haven't done one on spotting yet, the driving and vanilla spotting will come first.

vague shard
#

atm one Tanoa in top 50 servers, 7 more in top 100 - almost all LIFE, one Wasteland, two exile

karmic niche
#

AFAIR 75-80% of our public players have Tanoa. Those 20% were enough to prevent games on that island due to constant bitching of the guys who were kicked out of the server each time they tried to join

kindred pike
#

@dawn palm any idea how to fix this? I can't find an ref to the issue anywhere else online.

scenic canopy
#

Your dlls/exes might be out of sync

#

Thats happened before to friends

kindred pike
#

Cheers, just reinstalled all tools and it worked.

dawn palm
#

Dahlgen is right btw. For general information, that kind of error indicates a mismatch between an older version of an exe and the new dll it is trying to attach to. It can always be 'fixed' by using the maverick updater and ensuring any files listed in red are updated.

#

While I do try at all times to maintain compatibilty, that is only true when the exe itself has no error in the first place. The above indicates a fix was required in the exe itself.

kindred pike
#

Thanks both, all good now. Maverick tool helped. As always thanks for the great tools @dawn palm

sick verge
#

Is there a convenient way of calling a dll from Arma on a Linux machine?

glossy inlet
#

run Arma in wine

sick verge
#

Nah that's not really an option because of the performance

glossy inlet
#

you can't just run a windows library on linux. As you don't have a windows kernel on linux

#

You need some wrapper that wraps everything. Which wine does

#

What are you trying to do?

nocturne basin
#

use sqf-vm

sick verge
#

There's a framework (CLib) that I'd like to use on a Linux server but this framework uses C# extensions. Those should be runnable via dot net core or mono but I was told Arma only supports .so files on Linux

nocturne basin
#

soonβ„’ with PreProcessor support 🀷

sick verge
#

My thought was that I could write wrappers that simply redirect the calls to the library but I wanted to know I'd there was a better way

nocturne basin
#

ohh... btw. if somebody is bored: https://github.com/SQFvm/vm/pull/31 could use some feedback
mostly on ... well ... stuff i missed
the whole code itself is a mess actually 🀦

#

ohh ... also, if somebody could tell me how i enable c++ 17 features via cmake i would be very thankfull ... set(CMAKE_CXX_STANDARD 17) is somewhat not the trick one needs to do (internet lied to me)

glossy inlet
#

look at intercept's cmake files for c++17
@sick verge maybe you can make a .so wrapper that calls the C# .dll

nocturne basin
#

literally is 1:1 the same 😦

glossy inlet
#

Still only works if you actually use MSVC and not Ninja Β―_(ツ)_/Β―

nocturne basin
#

wut? no linux support?

glossy inlet
#

That part I linked only works if you use Visual Studio with the MSVC build tool, not Ninja.

#

Yes linux support.

glossy inlet
#

Yeah that stuff doesn't work

nocturne basin
glossy inlet
#

That flag works on GCC/Clang afaik. But not on MSVC

nocturne basin
#

as visible, it does not with gcc

glossy inlet
#

Atleast I don't have to do any work for it to work with gcc

#

which GCC version?

#

Maybe your GCC version is just too old and doesn't support it?

nocturne basin
#

travis seems to get 4.8.4

glossy inlet
#

Yeah travis is too old

pearl beacon
#

Travis runs Ubuntu -> everything too old πŸ˜„

smoky halo
#

This thread... C++πŸ’—

scenic canopy
#

@sick verge as others have said, you could create a native .so extensions that calls your C# library with mono

#

as long as the C# library can run with mono

#

I think I set that for your vm project?

nocturne basin
#

@scenic canopy ty
already did thx to him :)
it also is now complaining about some different issue https://travis-ci.org/SQFvm/vm/jobs/446257371 which is not fixable by configuration but rather by actually ... well ... fixing that PATH_MAX is not existing πŸ˜„

#

yes you did

#

ohh ... and clang is also not working ... neither is macos

scenic canopy
#

#include <linux/limits.h>

#

you need to include that for linux

nocturne basin
#

i am at work right now 🀷

scenic canopy
#

or preferably <limits.h> for both

#

hang on then πŸ˜›

nocturne basin
#

:D
well ... the moment i got all of that fixed, i can merge it into master and wooosh
SQF-VM can handle preprocessor input

#

and syntax checking

#

and getting CSTs

#

and debug sqf

#

and run sqf

#

i can now call it a "general purpose solution" πŸ˜„

scenic canopy
#

it compiles on my mac πŸ™ƒ

#

I'll switch to a newer macOS compiler for you as well

nocturne basin
#

❀

#

though
you need to create a PR into the filesystem branch not master now

scenic canopy
#

yep

#

πŸ˜‰

#

I added a PR for the limits issue @nocturne basin

#

but there are some other issues

nocturne basin
#

what issues?

scenic canopy
#

another missing header

#

I'll add one for that too

nocturne basin
#

πŸ‘

scenic canopy
#

macOS is harder

#

optional was fixed

#

I can compile macOS locally

#

since I'm on macOS 10.14

#

but travis uses Xcode 10 with macOS 10.13

#

which lacks some stuff

#

call to unavailable member function 'value': introduced in macOS 10.14

nocturne basin
#

πŸ€” in worst case, macos will need to get disabled 🀷

#

though... that belongs to the sqfvm discord all i think

scenic canopy
#

gcc works now

#

clang next then

#

after lunch πŸ˜ƒ

vague shard
#

does Enfusion/Enscript in DZ SA support callExtension or sth compareable?

glossy inlet
#

not yet

vague shard
#

also anyone some insights on their netcode - any better or different?

glossy inlet
#

But we've already seen something to reference functions out of a external library. So it seems like it's planned or already implemented internally

vague shard
#

ok thats something else. i would not expect for them to care for beta, would they?

glossy inlet
#

exactly. Currently they implement what they need. Honestly I don't see them ever implementing much more than what they need. They have other things to focus on besides giving us modders nice things to toy around with.

wind coral
#

Besides "netcode" they're using SQLLite for DB stuff.

vague shard
#

well i would assume DZ SA needs modding on PC to have any chance for a revival

#

could be they will care mostly about console after 1.0 though

#

would be a shame as it could act as learning and test bed for arma modders for Enfusion

glossy inlet
#

It already does that even if we don't get extensions. And if we only get what the DayZ devs need on their own.
DayZ is not a modding focused sandbox game as Arma is. For DayZ, the modding is just a nice gimmick

scenic canopy
#

a lot of mod support was mentioned in latest reports

#

including steam workshop

vague shard
#

what should be the big different to A3 - how is A3 a modding focused sandbox?
sure DZ lacks AI basically and has only basic vehicle simulation what i heard.
yet with PvP and Enscript can you not do various things?

terrain and model stuff is not much different, is it?

scenic canopy
#

terrain, not for now

#

some model stuff is based on new fbx etc

#

the most recent beta report I read also talked about scrapping throwable support until post 1.0

wind coral
#

Some new entries in model config and stuff as well. But they stilll use TB and O2 (iirc, I know TB for sure)

scenic canopy
#

go down to Features and improvements planned for BETA/1.0, or originally in 0.62, but moved post 1.0

wind coral
#

it includes smokes and stuff as well. They had an interesting way of doing this before. But it was literally, pull the pin. Drop it at your feet, and run.

scenic canopy
#

did you check out the FBX model files?

#

I think it was in one of the betas/nightlys but now I can't find it

wind coral
#

What was?

scenic canopy
#

some FBX files for models and not just p3d

wind coral
#

If you have the stress test build downloaded, it should he FBX now.

scenic canopy
#

ah, yes

vague shard
#

hm from what i recall they were going for fbx early on. probably moved back to p3d then for the time being

#

is PBR in DZ SA Enfusion version?

wind coral
#

I don't think PBR in specific is in.

#

I think supporting components are in as a part of the enfusion transition, but that's it.

dawn palm
#

well even tho FBX is a proprietory format, it's also an international standard for models. It means we won't have to put up with bugs that are never fixed nor sudden change to the internals rendering all the efforts we made making models in the first place are no longer usable. (for the most part, or much more so than now). It also means a far larger range of quality tools we can use that aren't rendered useless when a goalpost moves, because the goalpost can't be fiddled with any more.

nocturne basin
#

SQF-VM now (in github only, no build available) can parseCBA_Hashes addon ❀ (PreProcessor is working and all required commands for it are inside as it seems .. though ... could be wrong if it uses alt. syntax somewhere)

vague shard
#

someone into C/C++ up to help me decipher the source code for clutter generation in Arma?
while i think to understand the system from BI for the most part, some assistance would be greatly appreciated - if you are up for it, please DM me

i am to write a GUI interface to allow terrain makers to easily create and live tweak their clutter ingame. thanks

dawn palm
#

most of the (wrp) code is written using templates. it's not conventional c/c++ syntax because of that, and it takes a special kind of instanity to decode them. 50 years now in the game, and i've never used templates due to their awfullness. They are great for rapid development, near impossible to decipher and are loathed by people who have to maintain other people's code.

smoky halo
#

That’s why standard library uses them all over the place

dawn palm
#

hah , true that.

#

and for many, they are avoided.

#

years after their introduction, the battle still rages whther using #defines are a better option.

#

they are a clever idea, there's no doubt about that, but the syntax to implement them is too awful to contemplate. 70% of all C and C++ code is used in embedded microprocessors and industrial controllers, it is somewhere between rare and never that you will see the >> and << operators.

vague shard
#

can you guys recommend a good issue tracking/bug reporting system that the average player/non programmers understand (and is free, or at least one doesnt have to pay for guests/reporters)

glossy inlet
#

gitlab, public github repo, google forms

vague shard
#

well our experience is that the average/non programmers finds these too complex (the first two - no experience with google forms)

glossy inlet
#

Just make a custom google form. Ask about all the things you need.
It's not very easy for tracking on your end. But it makes the reporting very easy

visual gust
glossy inlet
smoky halo
vague shard
#

@visual gust thanks. looks decent overall. just UI is a bit too functional and lacking colors

#

the wiki page is not helpful as all the feature "bloat" is secondary. the simplicity of use and good interface design is most important, plus the free guests/reporters

nocturne basin
nocturne basin
#

building gcc from sources ... what a fun task

glossy inlet
#

There are harder things to compile

#

I think I needed about 20 minutes to get it to build. I had other things that I spent hours on

nocturne basin
#

spent the last 40 minutes finding all requirements until i finally hit the ground

#

now debugging a shitton of issues ...

#

i am this close to shredding the server and just swapping to something different then debian as distro

#

configure: error: uint64_t or int64_t not found

#

think i got it running now ..

#

afterwards: cmake ❀ -.-

karmic niche
#

Try building a GCC cross-compiler from sources πŸ˜‚

#

Bonus points if it is a Windows version of gcc

nocturne basin
#

gcc still compiling .. starts to make me worry

#

maybe i should have started it inside of a screen ..

smoky halo
#

Oh boy, put that beer away

nocturne basin
#

simple typo @smoky halo

#

somebody also may better start working on sqfvm!

#

or i will enrage!

wind coral
nocturne basin
#

T_T

#

thinking about introducing "multi-player" currently ..

#

but that would require the convert method to be properly working

#

though πŸ€” not really

karmic niche
#

I'm still waiting for you to implement Enfusionvm working on top of Intercept for Arma 3 πŸ˜›

nocturne basin
#

already asked for some instruction set 🀷

#

somebody yet has to deliver

#

(i am not really a reverse engineer guy)

dusky dune
#

Yes you are

nocturne basin
#

i am? did i missed something Oo
all reverse engineering work i ever did left me with no further actual knowledge besides a few "ohh that command struct is this large"

karmic niche
#

Not that I can help you because I don't own DayZ, but what is it exactly that you need that would require reverse-engineering? Isn't looking at the Enfusion script enough to write a basic VM for it? It doesn't matter how it is implemented underneath, a for loop is always going to work the same, for example.
Or am I the one who is missing something now?

nocturne basin
#

i could use any random VM (eg. the LUA VM) and implement everything in there
but chances are, that would work better then actual enfusion is doing

what i want to do is the same as with SQF-VM, replicate it as good as possible
at first, SQF-VM also just was a "observe and implement" with instructions trying to mirror behavior
but that was working ... more or less okish ... and troublesome

#

after Dedmen casted magic spells, i realized it is pretty much impossible with the current approach to ever implement all specifics

#

so the c++ rewrite happened where he helped me out a lot by telling me how things worked
he more or less did the magic stuff and i just replicated everything

#

thats btw. also why there is the theoretical possibility in SQF-VM to read sqfassembly directly πŸ˜‰

#

Enfusion will have the same problem in the end. Yes, i can start replicating it from what i can observe, but that will not work out in the end as proper representation.
What i thus need is exactly that: What instructions are used in Enfusions VM.

#

when i got that, i can start building a VM

#

though ... that is just roughly what is needed πŸ˜„

glossy inlet
#

I had a enfusion vm instruction list about a year back. Like.. Before Enscript was really properly implemented and when we didn't have any real scripts yet.
It probably doesn't match what it is today.. And it's probably on the hard drive that died last christmas.

nocturne basin
#

🀷 without such a list i will not be able to start replicating

#

writing the parser is a matter of minutes nowadays thanks to some other lil project of mine

glossy inlet
#

doesn't really make that much sense yet anyway. As we can't test if the VM matches the real thing, as we don't have the real thing yet really

nocturne basin
#

kinda

#

though ... we can

#

we got dayz

#

somewhat the same πŸ€” 🀷

glossy inlet
#

When I get into "A4" modding I'll rebuild all my knowledge again anyway

nocturne basin
#

indeed ...

#

though ... would be funny to have a fully fledged medic system ready when it releases πŸ˜„

glossy inlet
#

yeah. Wanted to prep my stuff with DayZ Enscript to have it ready to go later. But it's far to early to already start with that

smoky halo
glossy inlet
#

Does DayZ enforce battleye being active before you join a Server?
I think to remember that it required BE to start

nocturne basin
#

for now you should implement stuff for sqfvm so you can start to unit test against git commits @glossy inlet πŸ‘Ώ i wait for commands

glossy inlet
#

My fun side project currently is to convert armake to c++.
Already found a bug. And employing vector/string in a specific struct reduced it's size from 4,3MB to 192B. That's fun.

nocturne basin
#

i also got told "Magic" when i asked in the dayz modders discord ... but neither did i could find it nor did i really wanted to search for that ..

smoky halo
#

What was it using before for such huge size?

glossy inlet
#

C-Style arrays with static size. Like.. Filepath string would be char path[1024]

nocturne basin
#

which is stupid anyways

#

just please make sure that this time you actually can access everything without writing stuff to file

glossy inlet
#

And then you have a struct for a animation. Which contains 5 strings.
And there can be a total of 128 animations (Not really, it's just arbitrary number choosen, which for one always wastes memory when not all are used, and second introduces arbitrary limits)
And if you nest that a couple more times. It get's stupid

#

Yeah. Will convert all the stuff to istream/ostream

#

Spent two days on it so far. Most work for now is getting rid of all malloc/free calls

nocturne basin
#
pbo read_pbo(string filepath);
vector<pbo_file> pbo::files();
??? pbo_file::get_contents();

also please theese methods @glossy inlet and SQF-VM will get PBO support ❀

smoky halo
#

So it used dynamic memory allocation but only sometimes?

glossy inlet
#

yeah.

nocturne basin
#

though ... i just remember ... i need to get a debinarized config variant πŸ€”

#

add a cpp static ??? pbo::deserialize(pbo_file); too if possible

glossy inlet
#

Like for the lod's it would just allocate enough memory for the number of lods you actually have.
But then inside the lods all strings and like.. the array of materials and some stuff are Cstyle arrays with hardocded size

nocturne basin
#

hardocded size is actually always stupid

glossy inlet
#

So far I spent my two days in just p3d.cpp which is armake's custom p3d binarizer which isn't fully finished yet

smoky halo
#

Not if you know exactly how much you need

glossy inlet
#

even if you don't know exactly how much you need. push_back. done.

nocturne basin
#

in c you would either do a realloc or first count and then malloc 🀷

glossy inlet
#

that's more work though. Which is why that was not done. It was made to work quickly. optimization later or never

#

At which point.. You might aswell just choose C++ to learn something new, and to get stuff done alot quicker because most tools are already there

nocturne basin
#
int fgetpos(FILE *stream, fpos_t *pos);
int fsetpos(FILE *stream, const fpos_t *pos);```
🀷
smoky halo
nocturne basin
#

c++ is easier in regards of "usage" indeed
but it is harder to learn, even harder to master

#

c on the other hand is easy
just that here you have to do everything yourself
something i personally am fine with

glossy inlet
#

Coding is fun. But I want to get things done. And not constantly have to say "this is crap. But ah F. it. Making it good would waste too much time"

nocturne basin
#

just reminds me that XCG maybe should also support binary files πŸ€”

#

never said that in C

glossy inlet
#

I can read that in about every 10th line in armake

nocturne basin
#

because armake is horrible

#

just thinking if there could be some syntax that would describe binary files πŸ€”

smoky halo
nocturne basin
#

πŸ€” thats meh ... looks exactly as i would do it
so no need to implement myself 🀷

dawn palm
#

Most work for now is getting rid of all malloc/free calls

agreed there. It's the main claim to fame about 'managed code' in C#. In my case with rare exceptions where i'll use a calloc/free (and it is rare), i replaced all that grubby stuff in my own code with class constructors/~destructors some years ago and never looked back. Welcome relief from memory leaks.

#

as for char string[1024] or any other number, agreed again. They are, however unavoidable as dynamic entities (not static ones) for some file formats which don't have asciiz termination and are indeed a fixed size. I immediately convert them to utf8 CStrings and dispose of the array.

scenic canopy
#

@glossy inlet armake without hardcoded path/file limits sounds great, it chokes on Islands now

glossy inlet
#

Yeah I still use char string[1024] as a buffer when loading from files. But then immediately push it into a string container

vague shard
#

anyone here with practical experience of particle editors/tools from other engines?

#

considering to write one for Arma and getting insights from 3rd party would help to make a better tool

nocturne basin
#

i know how to create tools 🀷 but nothing 3d related
how much "tool" you want that tool to get? because i highly doubt you will be able to replicate armas particles anyways completely

glossy inlet
#

DayZ tools are supposed to contain a particle editor if I remember correctly. Maybe you can easily repurpose it for arma

vague shard
#

thanks. i am mainly interesting in the concepts, workflow, interface, etc

#

to tweak each parameter and have multiple emitters at the same time is basic stuff
yet likely there are more elaborate ways

smoky halo
#

If you want to do it real time, there are some params not accessible via scripts so this means modding and game restart and that alone kills any desire to make an interface for me for example

glossy inlet
#

Intercept could fix that ^^

#

But you'd still make the engine somehow reload the config for the effect. And it's still quite alot of work

#

Wow. Armake doesn't have any pbo functions seperated out. The pbo reading/writing code is just copy-pasted into every function that reads/writes pbo's 🀦

nocturne basin
#

told you armake is horrible

#

there is a reason why nobody ever bothered writing it so that it becomes usable as library

glossy inlet
#

armake even creates tempfiles to preproc stuff into. Because the preproc code can only read/write file on disk and not work just in memory

#

I think I'll go through preproc and binarize now. And then make something out of this pbo mess

nocturne basin
#

you may take the pp from sqfvm

#

working perfectly fine now 🀷

#

though ... you would need to adjust the file system related stuff a lil πŸ˜„

#

and maybe clean up the mess i did not ... like moving the classes into the header 🀷

glossy inlet
#

Armake is GPLv2 and SQFvm is LGPLv3. Are they compatible?

nocturne basin
#

not sure tbh πŸ€”

#

one would need to check

#

lgpl also with gpl

#

so yes, it is

glossy inlet
nocturne basin
#

🀷 or you link against sqfvm
then you are fine in all levels πŸ˜„

#

though ... don't you need to touch literally all lines anyways?
how much is really left of the old armake?

glossy inlet
#

I'm not really that far yet. I'd say so far 90 is still untouched. Or minimally touched. Like adding a c_str here and swapping a strlen vs a .length()

nocturne basin
#

but in the end, chances are fairly high that all what is left is nothing if you do not just want to make the same as c++
or am im wrong on this one?

#

because all that would be left, is data structures

#

which means it cannot really be protected by the GPLv2

glossy inlet
#

Your code is protected. The file format isn't.
Most actual logic in armake will not change. I'm just moving things around and replacing some things

nocturne basin
#

🀷 well ... then you may got a problem
though ... i personally am copyright holder of the pp in sqfvm
so practically, you can just use it

glossy inlet
#

ALso that would defy the purpose. I'm doing this to get practice in converting C legacy code to C++.

nocturne basin
#

armake is no legacy code

#

it is "i need to get files into pbos" code

glossy inlet
#

It certainly looks like it tho πŸ˜„

nocturne basin
#

and "ohh this still no working, better put it in place" code

#

maybe i should just start doing what i planned anyways ... implementing my own PBo parser into sqfvm

#

but fuck sake i do not want to write the parser πŸ˜„

glossy inlet
#

If you need a very well written template to work of. I'd recommend SwiftPbo the C# thingy that DokanPbo uses. It feels very nicely written

karmic niche
#

What was the reason Mikero switched to closed source, again?

nocturne basin
#

i would need some lecture on how to actually write streams in c++ πŸ™„

#

also an option though
could use mikeros toolchain
but ... that is less fun πŸ˜„

glossy inlet
#

Well for one, obfuscation with open-source doesn't really work that well

karmic niche
#

(btw i'd maybe use his tools instead of my own if I didn't own ARM servers...)

#

Yes but he switched to closed source prior to implementing obfuscation,I think.

#

I remember reading why he did that somewhere

scenic canopy
#

I had to modify armake quite a bit to get it working with my macOS Finder integration

#

Like dedmen says, some functions writes to files instead of returning the data

glossy inlet
#

Will also be interesting how the perf is with c++. I already know memory usage will be lower. But that might make perf worse because of all the reallocs. But on the other hand I'm also not calling strlen constantly. Or I don't have to iterate a array until I find a empty element so that I can insert.

nocturne basin
#

btw. how to implement streams like in c# or java?

glossy inlet
#

Me: "Wtf? Why is the armake zip download from github so big 27MB for just plain C code?"
Also me: "Oh. Someone pushed the biggest ace pbo into the repo as a unit test"
std::ostream (output)
std::istream (input)

And then you can pass stuff like std::istringstream (from string in memory) or std::ifstream (file) or std::cin (console input)

scenic canopy
#

istream/ostream?

nocturne basin
#

thats the thing
i want to output a stream i can work "on the fly" on rather then actually working on everything in one go

#

in c#, i would provide a custom abstract class System.IO.Stream implementation, having everything i need
but i am not sure how i would do such a thing in c++ ... or what side effects would arise

#

which is why right now everything returns and expects std::strings πŸ™ˆ

glossy inlet
#

So you want to like.. Make a pipe?
Throw stuff into binarize for example. And then connect the other end to pbo writer. Once binarize has output ready. It get's directly written into pbo?

#

There is a way to chain streams.. Don't remember tho

#

Like. You give someone an istream, and when he calls "read" on it. The istream itself calls functions to generate the data that wants to be read.
And you can connect it with multithreading to a ostream so that the istream just waits till the ostream has enough data ready.

nocturne basin
#

more or less πŸ€”
essentially eg. parsing preprocessor on request rather then as a whole

#

exactly

#

on point essentially

glossy inlet
#

That certainly is a thing. I don't know if standard library, or boost, or some special library. I've definitely seen it in some conference talk.
It's probably a boost thing

nocturne basin
#

🀷 that is what bothers me the most in both c and c++
i miss my fancy streams 😦

glossy inlet
#

boost asio can kinda do that. But I don't think it's the thingy I'm thinking of.

nocturne basin
#

i kinda avoid boost whereever i can

#

the whole framework is way to large ...

nocturne basin
#

nah
will never start using boost until they reduce the whole framework size to something i can download and unpack in less then a half hour

glossy inlet
#

Many parts are just header only

nocturne basin
#

for some project i tried to use asio

#

but that was not "just download asio and be done with it" ...

#

pretty much everything required something else from the whole boost framework and at some point, stuff that was mandatory for asio to work according to the #errors, required the whole framework to be included

#

and pretty much all the times i used the bloody boost framework, i experienced that

#

i also hate those answers on stack overflow recommending something that is implemented in boost -.-

glossy inlet
#

C++17 modules will fix all that πŸ˜„
Once people provide them. And people find out how to use them

nocturne basin
#

crap .... sqfvm still does not compiles

#
/home/x39/gcc-8.2.0/gcc-8.2.0/libstdc++-v3/testsuite/20_util/optional/hash.cc``` and llooks like optiona.h is nowhere to be found -.-
#

the error btw.

                 from /home/x39/projects/sqfvm/vm/src/Entry.cpp:3:
/home/x39/projects/sqfvm/vm/src/filesystem.h:6:20: fatal error: optional: No such file or directory
 #include <optional>
                    ^
compilation terminated.```
#

now ... where to get the actual c++17 headers for gcc -.-

glossy inlet
nocturne basin
#

header itself is not existing on my system

#

gcc freshly build

#
gcc (GCC) 8.2.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.```
glossy inlet
#

I'm running selfbuilt gcc 7.2.0 on my server and that can compile Intercept atleast. Which also uses optional
Configured with: ../configure -v --enable-languages=c,c++,go --enable-multilib --enable-multiarch --disable-bootstrap --with-system-zlib

nocturne basin
#

tried sudo find / | grep optional.h? because that should show up the optionals header somewhere 🀷

glossy inlet
#

that will fail

#

that's not the name of that file

#

it's optional

#

./gcc-7.2.0/objdir/x86_64-pc-linux-gnu/libstdc++-v3/include/optional
./gcc-7.2.0/libstdc++-v3/include/std/optional

nocturne basin
#

/root/gcc-8.2.0/libstdc++-v3/include/std/optional πŸ€” weird

#
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_MACOSX_RPATH 1)``` cmake is set according
#

gcc is ready

scenic canopy
#

@nocturne basin which OS/dist are you installing GCC on?

nocturne basin
#

debian

scenic canopy
#

okay

#

you could use clang instead as well πŸ˜‰

nocturne basin
#
make
make install```
#

both performed

scenic canopy
#

well, you don't have to compile it yourself

nocturne basin
#

nah
just need one compiler to get it actually compile the sqfvm bot again

scenic canopy
#

it's available from apt

nocturne basin
#

hah ... yes ... theoretically

#

just that the binaries provided are outdated AF

scenic canopy
#

no, you can get the backported newer ones

#

which version if debian?

nocturne basin
#

Debian 9 (stretch)

#

still ... gcc is up to date by now

#

as recent as possible

#

just that it will not compile for some reason

scenic canopy
#

did you update libstdc++?

nocturne basin
#

trying to find what version it would need right now ...

#

currently, 3.4 seems to be installed

scenic canopy
#

apt-get -t testing install gcc-7

#

I think that might work

nocturne basin
#

nope

#

E: The value 'testing' is invalid for APT::Default-Release as such a release is not available in the sources

#

but i think the libstdc++ installed was even outdated for my last gcc Oo

glossy inlet
#

do you have testing repo in your sources.list?

nocturne basin
#

nah
wait
it is not

#

nope ... but i also hate installing new repos
currently try to find how to build the bloody lib from sources ..

#

yup ...

#

libstdc++ is build already

#

i start to think that this is rather a cmake problem for some weird reason ...

#

because ... unless for some weird reason, the libstdc is not getting installed correctly twice (now explicitly installed it), i see no reason why it should not work..

#

maybe it is just time to get CI to work proper and then just pulling the binary from the CI

plush shard
glossy inlet
#
if(CMAKE_COMPILER_IS_GNUCXX)
        SET(CMAKE_CXX_FLAGS "-std=c++1z -O2 -s -fPIC -fpermissive -static-libgcc -static-libstdc++")#-march=i686 -m32
        set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
        set(CMAKE_SHARED_LINKER_FLAGS "-shared -static-libgcc -static-libstdc++")

Ah so that's why I have that there πŸ˜„

scenic canopy
#

c++1z is also the old parameter, it should be c++17

#

some older compilers such as clang 4 will be confused though

#

but you're using optional soooo 🀷

glossy inlet
#

It's probably me who used optional πŸ˜„

nocturne basin
#

@plush shard yup
theoretically, you are correct

cmake version 3.13.0-rc2``` practically, i also already build cmake
#

it actually was you who told me to use them
i personally find the quite handy being used to the C# valuetype? syntax for nullables

glossy inlet
#

Man.
Armake in C: Iterate through entire include_stack to find the last element. Then set last element to empty string.
Armake in C++: include_stack.pop_back()
It's the little tiny things that count. Also the include stack is now not 512KB big anymore. Minimum size is 32Bytes and it only grabs the memory that it needs.
It uses less memory. And is faster while doing that.

nocturne basin
#

or more: armake doing in C already stupid things 🀷

glossy inlet
#

In C you would just add a "num_elements" variable right?
And 4 or 5 lines of malloc/free code for dynamic resize.. While checking every possible exit point to not leave memory leaks

nocturne basin
#
{
    ???* data;
    size_t data_top;
    size_t data_size;
}``` would be how i would solve such things
#

top always pointing to the next, free element

#

having a push_back and pop_back method

#

if you want it especially fancy, you even can make it kinda "generic" using preprocessor

#

fairly handy, easy, but hard to understand at first

#

still this does not solve my horrible problem with #include <optional> and c++17 -.-

dawn palm
#

I thought Armake was koffienflummi? What's happened to him?

nocturne basin
#

flummied away

glossy inlet
#

Nothing happened.
He's making KSP mods currently I think

#

@nocturne basin have you tried adding c++1z parameter manually? it's not in the makefile

nocturne basin
#

no idea how to do that @glossy inlet

dawn palm
#

well the admittedly small amount of code samples i saw from him smacked quality, i'm surprised by the way you describe how armake has been put together. Don't doubt you, just surprised.

glossy inlet
#

armake has just been written to be working quickly. 0 optimization or care for maintainability put into it

dawn palm
#

k. understood

glossy inlet
#

The actual logic is splendid. Just the implementation isn't

nocturne basin
#

added that, did not changed anything @glossy inlet

glossy inlet
#

πŸ€”

#

Lemme try something. brb

nocturne basin
#

though ... neither was the c++1z flag added 🀷

glossy inlet
#

deleted cmake cache files?

nocturne basin
#

The C compiler identification is GNU 6.3.0

#

just

#

wtf

#

is that

#

!?

glossy inlet
#

Builds just fine on my server. Even without the c++1z flag.
Oh that.

#

Wait a sec. I got something about that somewhere

nocturne basin
#

at least that now explains a lot to me -.-

#

not even a fucking clue wherei t found that one

glossy inlet
#

Found it! CXX=g++-7 CC=gcc-7 cmake .. -DCMAKE_BUILD_TYPE=Release

#

the first two parameters are probably most interesting to you

#

you can also redirect your gcc/g++ symlinks to the new gcc

nocturne basin
#
gcc (GCC) 8.2.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

x39@x39:~/projects/sqfvm/vm$ g++ --version
g++ (GCC) 8.2.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.``` that is the point
#

they already are

glossy inlet
#

πŸ€” πŸ‘»

nocturne basin
#

i hate you so much right now T_T

#

where the hell is my system still having some weirdo gcc references it should not have -.-

glossy inlet
#

whereis gcc ? maybe some of them redirect elsewhere?

nocturne basin
#

now executed once again apt remove gcc ...

#

guess what is working perfectly fine now 🀦

#

forgot to remove it
guess cmake is looking in the dirs different then bash

smoky halo
#

Happy end

nocturne basin
#
1:

Executing...
---------------------------------------------------------------
[DIAG]  yes
---------------------------------------------------------------
[WORK]  <NOTHING>       nil```
#

also can fire up the bot finally again

#

which now has the preprocess__ vm internal command

hardy patio
#

πŸŽ‰ ?
Gotta say it was an interesting read even with my limited linux skills

glossy inlet
#

And in the menatime I moved the armake preproc into a class. Got rid off all the weird pointers that were passed in from outside and managed by the caller of the preproc.
Now to get rid of all the mallocs. And then convert to iostreams.
πŸ‘
And when that's done. You can just preprocess from cin to cout.
Don't understand why that hasn't been a focus from the beginning. Flummi always handled armake as a linux based tool. However you cannot pipe input into or out of it.

nocturne basin
#

how did he actually solved the file lookup stuff btw.? never bothered to check due to ... well ... you know why πŸ˜„

glossy inlet
#

finding includes? I only stepped into that for a short moment. But I think recursive search for matching filename outgoing from working dir.

nocturne basin
#

yes, finding includes

#

but how would he then handle stuff like /x/whatever/whoknows in PBO_PREFIX

#

solving that riddle took me hours in my implementation ...

#

and it still is horrible to look at

#

because you need to provide the VM with all that informations

#

((which is btw. why loadFile although technically being available, is not working with the bot as it will never find files πŸ˜‰))

glossy inlet
#

like.
if you have this
stuff
script_mod.hpp
stuff2
script_mod.hpp
config.cpp

and the config included "z\mod\addons\stuff2\script_mod.hpp" I don't know if he respects anything but the filename and might find stuff\script_mod.hpp instead.
Didn't look deep enough into it. Will have to rewrite it with std::filesystem anyway

smoky halo
#

LoadFile doesn’t preprocess AFAIK

nocturne basin
#

does not matters @smoky halo
it requires arma-like file system access

#

preprocessFile is also implementedi nthe sqfvm now

glossy inlet
#

it doesn't.
matter*
I think best would... okey not best. But easiest and actually working variant would be to search all files with matching filename recursively.
And then look for each file, does his parent directory match the parent of the to-be-included file.
And then choose the file that has the longest matching path

Would be very inefficient of course. But should work

nocturne basin
#

well ... 🀷
i settled with virtual mappings

#

-v ./hashes|x\cba\addons\hashes passing this is enough to get it recognizing the mapped path

#

actually ... sqfvm is damn handy by now πŸ€”

-v ./main|x\cba\addons\main
-v ./hashes|x\cba\addons\hashes
-F ./hashes/config.cpp
-f ./cfgFunctions.sqf```
#

should include the whole cba hashes related stuff 🀷

dawn palm
#

not sure i can see the problem with #includes, you either have x/cba/whatever at the root of the linux file system, or you always prepend a /my/dev/area. In the case of relative includes, dont' see an issue

nocturne basin
#

@dawn palm that is ok for stuff like armake and your toolchain
but sqf-vm might be at a different location or required to load multiple addons at once

glossy inlet
#

problem is when you have for example
#include "\z\tfar\addons\core\script_mod.hpp"
In the file C:\dev\projects\task-force-arma-3-radio\addons\core\stuff.hpp
There is no p-drive where you could look up the "\z\tfar" path.
Yeah. relatives are not an issue. Many mods based on the CBA style use full paths, for their relative include though.
Because others might include that header from elsewhere, where relative paths would then not work anymore.

Only real way to get this is to read the pboprefix

dawn palm
#

thanx X39. understood, and i have no interest in sqf, hence my confusion

nocturne basin
#

that also is a problem solved by the mapping being required to be passed by the user

dawn palm
#

bis, btw, use an indexing array of [pbo\prefix][hard address of pbo]

nocturne basin
#

highly doubt anybody ever will use sqfvm anyways ... not even really sure why i still work on it 🀷
though ... it makes fun
for the most part

but ... to be serious ... who will ever care enough about eg. unit testing to use sqfvm for it? by now, it is ready as long as the addons are unpacked
or who is using sqfvm to quickly just test scripts
the whole project again is meh ... πŸ™„ 😧

glossy inlet
#

The good "pointing out where errors are and why they are wrong" is good for educational use in #arma3_scripting

nocturne basin
smoky halo
#

we all have our coding babies no one really uses ^^

nocturne basin
#

but i have a shitton of those @smoky halo πŸ˜›

dawn palm
#

the index array above is of course 'poetic license' for a tree....->physical pbo address

glossy inlet
#

What? Did someone ask for ArmaLoadoutEditor in C++? πŸ˜„

smoky halo
#

and you learned from all of them I assume. like me ^^

nocturne basin
#

kinda 🀷 still disappointing to create something and seeing that nobody uses it

#

only thing people still use is my ArmA-UI-Editor ...

#

but that thing is bugged like hell and a nightmare to maintain

#

which is why i declared it as dead already

glossy inlet
#

πŸ€”
Letting people create UI's with scripts in sqf-vm. And then exporting as config πŸ€”

smoky halo
#

I have EBO decryption, ODOL2MLOD conversion....stuff I cannot really release...

nocturne basin
#

what for @glossy inlet ?

#

though ... possible 🀷

dusky dune
#

i still wish we had some magical odol thing we could use to make terrain tools in UE4 or blender or so

glossy inlet
#

Just an idea.. Dunno. I don't do UI's

nocturne basin
#

had some new fancy UI editor project for arma.studio in mind ... but that never went good either which is why it is pretty much also dead before arrival

#

though ... somehow, people seem to randomly use ArmA.Studio 🀷

#

2018-11-05 04:21:09 ****** /api.php?action=projects&project=ArmA.Studio

glossy inlet
#

Already seen someone building big structures in UE4. And then exporting as a prefab model from UE and importing into Arma.
But you create a new model everytime and don't reuse things, which makes filesize huge. But as you don't have many models the perf on the maps build with that is quite nice

dawn palm
#

well @smoky halo , those two programs are valuable, and you're doing the right thing.

karmic niche
#

highly doubt anybody ever will use sqfvm anyways
I'd be interested in using Enfusionvm for unit testing, if it ever comes out (hence me gently poking you about it from time to time :P)

#

I don't want to touch sqf with a 2m pole though, so I managed to be useful to my community by doing everything else over those years πŸ˜„ (C++ extensions, python extensions, etc)

#

But once Enfusion modding becomes a thing I'm interested in jumping in

smoky halo
#

Is it not already?

dawn palm
#

same sentiment, same comments as you @karmic niche

nocturne basin
#

Enscript-VM ? that project not even started due to lacking assembly instruction list @smoky halo

smoky halo
#

No, Enfusion modding

dawn palm
#

balls to that. let them try. early days of ofp said same thing

glossy inlet
#

It is already a thing yes. But kinda limited until the real modding tools are released

nocturne basin
#

🀷 gimme an assembly list and i show you a VM πŸ˜›

#

though ... info about actual scoping would be appreciated too, the instructions are more important for now

#

can have a working AST parser ready by end of week
though ... chances are i would need to rewrite XCG a lil to make it work (with c++ proper, only c output supported yet) πŸ€”

native kiln
#

@karmic niche The tools will drop today

#

as in Enfusion Script IDE and so on

dawn palm
#

the way I understand enfusion scripting to work is it is classic C family function calls. We can build our own libararies which others might find useful, or, at least use parts of those libaries for their own purposes, and we will be free of bi's ridiculous , inconsistent, sqf syntax, and relying on bis to provide useful functionality.

glossy inlet
#

I probably have to download all of DayZ to get my hands on that right?
Need to delete something to make space πŸ€”

#

and we will be free of bi's ridiculous , inconsistent, sqf syntax
Instead we get BI's ridiculous inconsistent Enscript classes.

nocturne basin
#

and scoping

#

and language

smoky halo
#

I’ve heard inconsistency in Enscript is carefully preserved

nocturne basin
#

and again, it will not be inconsistent but rather "bad design" 🀷

#

getting some inconsistent language is hard to do

dawn palm
#

if they are c family ,there are some rules bis cannot break

nocturne basin
#

the good part though is that now one can properly build a better language on top of what BIS did
unlike with SQF ...

glossy inlet
#

https://data.bistudio.com/dayz/img/jules_modding_00_workbench_01_f.jpg picture of some enscript
world.SetDate(date.Get(0), date.Get(1), date.Get(2), date.Get(3), date.Get(4))
πŸ˜„
And casting a class doesn't return the result.
How to get a identity matrix?
IdentityMat = Math3D.MatrixIdentity4() ? No... Of coruse not!
Math3D.MatrixIdentity4(IndentityMat) Yes baby!

smoky halo
#

Build SQF on top of it

dawn palm
#

yes. i said same thing above, but not as concisely as you

nocturne basin
#

zero idea what Math3D.MatrixIdentity4(IndentityMat) is actually supposed to do

dawn palm
#

somefunc(int a, float b, char c){.....

and there's not one single thing bis can do to alter that consistent interface

nocturne basin
#

though .. that might be some sorta out parameter?

glossy inlet
#

You can return numbers and string and stuff.
But. If you want a array back. You have to create one, and pass it as reference

#

yes it's a out parameter. Because you apparently cannot return arrays

nocturne basin
#

so ... essentially: Math3D_MatrixIdentity4(Identity arr[4])

smoky halo
#

So no RVO then

glossy inlet
#

No O in general

#

atleast last time I looked at it. A optimizer doesn't exist

nocturne basin
#

fixing literally everything Enscript will be doing wrong without all those messy workarounds SQF required

smoky halo
#

Identity (&arr)[4] probably @nocturne basin

karmic niche
#

@native kiln What tools? The official ones or from the modders? Where can I read about that?

glossy inlet
#

cpp reference in german is garbage :D
From german cppreference translated back to english:

Behaves like UnformattedInputFunction except that input.gcount() will not affected. After the building and testing the shield guard object, leads the following:

Original english:

Behaves as UnformattedInputFunction, except that input.gcount() is not affected. After constructing and checking the sentry object, performs the following

I got suspicious when it started talking about a "shield guard"

native kiln
#

@karmic niche The official tools

#

They talk about it in the status report that was released yesterday

#

While they can definitely be considered Experimental, your early feedback on the tool set can help us shape the future of the DayZ platform and game alike. Tools will be available as a free download on Steam and will be also supported by our new DayZ Launcher to organize your DayZ experience. The launcher (familiar to those of you who tried Arma 3) will be useful not only to work with mods, but also for work with startup parameters, server and tools after the tools package stabilizes a bit. With the DayZ tools release, we will be opening the Steam Workshop for you guys to share your creations in an easier way, accessible in one central place.

dawn palm
#

sounds more like a mission editing and publishing ability

smoky halo
#

Boycott Enscript if you want SQF support in A4!

karmic niche
#

I'd prefer Logo for A4 tbh

scenic canopy
#

so DayZ tools are actually released now or?

#

nothing on steamdb as far as I can see

native kiln
#

@dawn palm it's gonna include the scripting IDE afaik

rancid relic
#

there should be some barbarized enfusion workbench, updated object builder, terrain builder & some more minor things

#

but it's not released yet

native kiln
#

^^^

#

But if I'm informed correctly they should be dropping today

elfin oxide
#

Yes that is what Eugen said. it is planned to get those out today - but we'll see if they make it or if its pushed to tomorrow.

nocturne basin
#

@smoky halo or we just build a sqf-vm in enscript πŸ€·β€β™‚οΈ

#

Alternative: a transpiler

#

Translating sqf to enscript

smoky halo
#

So many community projects would be wasted

#

On one hand

#

On the other hand only the best would make it

#

Not so sure about that actually

dusky dune
#

pls give translation tool @nocturne basin i have way too much sqf :3

#

i wanna get terrain making mod out asasp for dayz but i hanve't looked into dayz at all and dont know C languages

nocturne basin
#

Will see @dusky dune
Not even looked much into enscript yet
Problem mostly is to get the correct objects for the right scripts wich is impossible till arma 4 launches
The Rest is just mangling

dawn palm
#

i wanna get terrain making mod out asasp for dayz

you can do what bis do and use t/b. All you require is the DayzSA version of bis binarise which produces a very minor difference in the file format.

#

the same comment applies to p3d's, then only requirement is DaysSA bis binarise. If that's not released in this tools package, then itt's smoke, mirrors, and bullsh*t

dusky dune
#

its to make sure you can actually put objects down in a decent manner :p

#

not whether it packs or anything

dawn palm
#

ah sorry sorry, i totally misread you Adanteh

#

before your excellent (modified) tool is useful, daysSA bis binarise needs to be available.

vague shard
#

no longer possible to port DZ SA models to A3?

dawn palm
#

never was possible to port genuine dayz models. they are an unkown file format to the arma3 engine

vague shard
#

well yes. still i mean objects to allow Adanteh to use A3 and his tool to build DZ SA terrains for now

dawn palm
#

ah

vague shard
#

otherwise would need to get sqf fully working in TB/BD i guess

dawn palm
#

I'l wait to see if dayz binarise is in the package, otherwise i'll provide a tool to convert arma->dayz and people can use their current workflow.

glossy inlet
#

do you actually need to change things in the unbinarized models/terrains to make it binarizeable for dayz?

dawn palm
#

no/.

#

it's simply the way the binarised wrp and p3d are formatted. for the wrp it's a slight difference, for p3d, there's no physx (educated guess)

#

days is supposedly moving to fbx rather than p3d, but that's not the current sutuation so far as i am aware.

scenic canopy
#

dayz tools are out on steam!

#

binarize is included

dawn palm
#

good info. thank you.

scenic canopy
#

workbench ide starts with a nice "enfusion" splash

dawn palm
#

they will be using the same tool chain as arma, notably BinMake\binmakerules.txt. It may or may not work in >our< dev environmnent. generally it does, but by example arma's bin64.exe can't

#

most (not all) of my tools will work with dayZ as is.

#

If I get a free copy of this game (as I usually do) more will follow, otherwise: not interested.

glossy inlet
#

Workbench kills tiself on start if dayz is not installed πŸ˜„

dusky dune
#

.... :/

#

how do yo uinto free copy of dayz if you wanna do weird mod tool stuff for it?

#

(Not asking for me, i have it since day 1)

glossy inlet
#

I have it since month 1. And can never play it πŸ˜„

#

Also your grammar doesn't make sense there I think.

dusky dune
#

its a meme you dip

dawn palm
#

derp

dusky dune
#

you know how poland cannot into space?

#

time to download dayz i guess

glossy inlet
#

I'm moving my Arma 2 mods from 4 years ago out of the way to free space πŸ˜„

dusky dune
#

[ProjectDrive]
user=0
path=D:\DayZ\Workdrive_1
#

.... bis pls no

glossy inlet
#

P drive on D? πŸ˜„

dusky dune
#

whats sanda map?

dawn palm
#

oh god, doesn't everyone have a cd/dvd in D:\ ?

glossy inlet
#

πŸ€”

#

@thin rose your terrain guess might not be that far off lol

#

Bigger question.. Why are they editing Arma maps with DayZ TB? πŸ˜„

#

I don't even have a cd/dvd drive at all

dawn palm
#

ok, your backup terrabyte then.

dusky dune
#

looks the same anyway

dawn palm
#

using D:\ is obnoxious since it's the first 'spare' drive incuding usb or ramdisk, on almost anyone's pc

dusky dune
#

maybe its because i had something installed there at one point

dawn palm
#

Why are they editing Arma maps with DayZ TB?

huh?

glossy inlet
#

the screenshot from Adanteh

#

A terrain in a a3 folder. In DayZ Terrainbuilders recently opened files

dawn palm
#

there should be zero nada zilch difference betwen an arma3 tb and an dayzSa tb

#

the only difference is the way the exported map has been binarised

#

sorry

#

will be, binarised

#

if they're not capable of fixing their current set of broken tools, what on earth makes any of you think they've been cabaple of writing new or different ones?

dusky dune
#

a man can hope

#

I want full SDK like map editor like UE4 or unity πŸ˜‰

#

ENFUSION

glossy inlet
#

Dayz got completely rid of SQF?
What is this then in binarize/bin/script.cpp config file
if (typeName(_this select 0)=='ARRAY') then {onPlayerConnecting {playerOn _id call {%TEXT}}} else {(_this select 0) call {%TEXT}}

nocturne basin
#

ancient remanents

dawn palm
#

i think (and hope) so

nocturne basin
#

to always keep history of our fallen brother

glossy inlet
#

Atleast I didn't spot SQS yet

nocturne basin
#

it was put into a fertile edge where it can grow

#

and live to see the its next life

#

with only the magic wizards being able to spot its existance

dusky dune
#

`[8:34 PM] mikero: i think (and hope) so ``

#

i wouldnt mind keeping old SQF alive so you can have instant ported mods

glossy inlet
#

Okey. Yeah. Legacy. config.cpp
defaultAction="http://www.arma2.com/mods";

thin rose
#

with only the magic wizards being able to spot its existance Can't we just throw it into a Bag of Holding?

glossy inlet
#

Found it! playerKilledScript="onPlayerKilled.sqs";

dawn palm
#

just guessing, because it's the way I would do it, they simply renamed .sqf ->.cpp and then edited/transformed sqXshit into c functions. This one is an orphan (I hope)

nocturne basin
#

noooo @thin rose

#

we need SQF to get reminded of past mistakes

thin rose
#

A little sign is needed : On this spot aeons ago SQF died alone and whimpering....

dawn palm
#

hooray

#

no-one puts 'knowledge of sqf' on their CV when job hunting because no-one else in the industry would know what they're talking about, or remotely interested. It's a career killer with time wasted.

#

equally obtuse languages like asm would, at least, command high salaries

thin rose
#

or Cobol or Fortran

pearl beacon
#

that's not true, it shows ability and wish to learn something else non-standard, it's totally dependent on what a company wants to see, it may as well be a valid CV point

dawn palm
#

Cobol programmers are quiche eaters.

thin rose
#

haha

dawn palm
#

it's more likely Jonpas in todays market that the boss will consider you capable of wasting company time.

thin rose
#

Our mainframe guys made a killing because no one else knew how to run them.

dawn palm
#

Well, I still work with (gulp) algol

thin rose
#

wow

nocturne basin
#

Legacy Code is the best job saver

dawn palm
#

shhhhhhhhh

nocturne basin
#

also ensures regular salary increase

pearl beacon
#

well that's just a terrible boss, not like you'll do SQF at work if you have a proper job...

smoky halo
#

Who do you think writes BI functions?

pearl beacon
#

I said a proper job

#

πŸ˜‰

nocturne basin
#

@pearl beacon we can make it happen

#

SQF, the new python

pearl beacon
#

why would we want to

nocturne basin
#

because why not 🀷

pearl beacon
#

because I am not retarded? πŸ˜„

nocturne basin
#

can give you some commands to interact better with native libraries πŸ˜‰ 😏

pearl beacon
#

no thanks