Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
ketmar

k8vavoom: no good thing ever dies!

Recommended Posts

That is an impressive list of changes :)

 

Function calls without parentheses seems a bit iffy to me, I remember QuakeC had some support for first-class functions (e.g. the th_pain stuff) so you need to differentiate a reference to a function from a function call.

 

Anyway, happy hacking!

Share this post


Link to post

and, here is win32 build (see top post instead), so people can try it out!

how to run: vavoom.exe -iwaddir <path-to-where-my-doom.wad-is> -doom

i.e. use "-iwaddir" to specify a path to your iwads, and "-<gamename>" to select a game (-doom, -doom2, etc.)

 

On 10/13/2018 at 11:26 AM, andrewj said:

That is an impressive list of changes :)

 

Function calls without parentheses seems a bit iffy to me, I remember QuakeC had some support for first-class functions (e.g. the th_pain stuff) so you need to differentiate a reference to a function from a function call.

 

Anyway, happy hacking!

thank you for your kind words, and thank you even more for ajbsp! and, while i am here, for eureka. ;-)

 

as for paren-less calls and function references, it is easy: "&function" is a reference, "function" is a call. VaVoom C has support for pointers, so "&" to get function address is quite natural, i think.

Edited by ketmar

Share this post


Link to post

do you know why i absolutely love to make public announces or releases? 'cause exactly after you did it, and uploaded a binary build, you'll catch the bug which makes you cry. this time it is a bug in dehacked processing: when i added optional arguments to decorate actions, i completely forgot to fix VM calls (dehacked is a "special decorate" internally).

 

it is fixed in git, and for windows binary -- just don't load dehacked patches. for example, don't play such wads. or use "-skipdehacked" command line argument i attached fixed binary to the first post.

 

if you're interested, there are also "-skipsounds" and "-skipsprites" arguments. i must confess that i HAET custom sounds (especially in '90 wads), so i added these.

 

by the way, if you'll drop wads from Doom 2 Minor Sprite Fixing Project to "basev/doom/autoload", they will Just Work. as a bonus, you'll get a silent SSG in DooM 1 ("gimme" console command will do).

Edited by ketmar

Share this post


Link to post

sorry for bumping the thread, i just wanted to notify people that i updated windows build, and will be updating it from time to time. so if (for some strange reason i won't even try to guess) you are interested in trying k8VaVoom on windows, you can check the first post once in a while to see if i put something fresh there.

Share this post


Link to post

Works kinda fine for me at 1680x1050. That widescreen option should be moved into the Resolution menu. I had some problems with the UI not being centered but I think a restart fixed it, cause it's fine now.

 

But how can I turn off those blood effects? It looks crap and it also makes an annoying liquid noise! Personally I REALLY think you should have some of these additions off by default or totally eliminated. If someone wants stuff like these, they will load an appropriate mod. The particles also look bad, those barrel explosions suck.

 

The music sounds laughable but I think this will be fixed when you implement a proper MIDI library. Also I think it would be worth the effort of having the usual cmdline options to make this work with a launcher like ZDL. The -iwad parameter for example? When the allow mouse in menu option is Off, you should hide the cursor. My final suggestion is to look for redundant menu options and remove them, advanced users can set them with the console, right? Some of them just look useless for the 99.9% of users.

 

I think your effort has potential, I will be testing future versions!

 

EDIT: Wtf are these Elven Gifts?

Edited by 𝕍𝔾𝔸

Share this post


Link to post
6 hours ago, 𝕍𝔾𝔸 said:

That widescreen option should be moved into the Resolution menu.

yeah, the UI is a mess. it wasn't the best one in the original, and i turned it in total chaos. i'm planning to clean it up when i'll do a new UI code. but widescreen can be moved right now, you are right. tnx!

 

as for why current UI should be rewritten, small example: almost all menu options are directly connected to cvars, and each cvar has help text, yet currently there is no way to show that help. grrrrr!

 

 

6 hours ago, 𝕍𝔾𝔸 said:

But how can I turn off those blood effects?

"-nogore". i mentioned it in readme, but failed to mention what is that "ketchup mod", and that it is active by default. mea culpa. both users of k8VaVoom (yeah, we are many! no, really, exactly two, including myself) likes it that way, so it is default. i prolly will change it to opt-in for next public releases, tnx.

 

 

6 hours ago, 𝕍𝔾𝔸 said:

The particles also look bad

do you mean rendering, or effects themselves? anyway, particle system is the same as in the original VaVoom: i never payed much attention to it. "it works, it renders those funny dots, so be it." so if you have any ideas -- please, share.

 

6 hours ago, 𝕍𝔾𝔸 said:

The music sounds laughable

so you did managed to properly configure timidity? O_O something i still don't know how to do, lol. it "just works" on my GNU/Linux box, and never worked in wine. tbh, "add other MIDI backends" sits somewhere at the bottom of my TODO list, as i am ok with timidity sound, but if k8VaVoom (i should invent some abbrevation for that name!) will get some more users, and they will ask for it, priorities can be reviewed.

 

6 hours ago, 𝕍𝔾𝔸 said:

When the allow mouse in menu option is Off, you should hide the cursor.

do you mean game's cursor? yeah, turning it on/off on the fly is buggy. i never did it from the menu, and missed that part. tnx! as for system mouse cursor -- it is working as intended. i am usually playing in window, and that cursor is there to remind me that the game is not capturing it anymore. i prolly should hide it in fullscreen mode, though. tnx!

 

6 hours ago, 𝕍𝔾𝔸 said:

My final suggestion is to look for redundant menu options and remove them, advanced users can set them with the console, right? Some of them just look useless for the 99.9% of users. 

in new UI most of them will have some help text. but you are right, most of the options are like "ok, i don't think that you will need to play with this", so they can be hidden in a far-away "super-arcane-advanced-config" menu. i won't remove them, though, 'cause those options are the only way for me to remember that i have some feature already implemented. ;-)

 

6 hours ago, 𝕍𝔾𝔸 said:

Also I think it would be worth the effort of having the usual cmdline options to make this work with a launcher like ZDL. The -iwad parameter for example?

i am not using launchers, so i just never realized that. you are absolutely right, there are zero reasons to not support those. will check what other ports and launchers have. maybe there is some description of "common cli arguments for sourceport"? or this is usual non-codified common knowledge? ;-)

 

6 hours ago, 𝕍𝔾𝔸 said:

Wtf are these Elven Gifts? 

wow. almost forgot about that. this is various "cheat mode" switches.

"ammo king" bumps ammo limits (to 200 shells and 400 bullets, w/o backpack).

"elven gift" is to use with "-bdw". it gives you assault rifle, shotgun, and some ammo on "new game". 'cause i think that our space marine should have some real weapons, not a stupid pistol. without "-bdw" you'll get some ammo and a shotgun. pretty useless.

"pain elemental attacks" is exactly what label says. i HAET lost souls, and i HAET PE. so with this option you can turn PE into harmless flying balls of pathos (the effect is the same as if lost soul limit reached in vanilla).

now call me cheater, yeah! ;-)

 

and that reminds me that i'd better turn all those gameplay-related options "off" by default (except, maybe, headshots ;-).

 

 

thank you alot for your feedback! and if some of my text looks like i am trying to dismiss your criticism, that is totally not what i meant -- i just tried to explain why it was done that way. English is hard, especially when you learned it via IRC chats. ;-) all your points are noted, and changes will be made. please, give me even more criticism! ;-)

Share this post


Link to post

https://zdoom.org/wiki/Command_line_parameters

 

From all of these you should support iwad, file, warp, deh, nomonsters. Then it should work with ZDL and other launchers.

 

Music worked out of the box but sounded very timid. I went to the options, it said it was using Timidity, well that makes sense I thought. I didn't fiddle with the music options sadly. Can I set it to use the system midi device? I am not in front of my PC. I have Coolsoft Virtualsynth installed, that should take care of all problems if I can set it to System.

 

Also, Doom has cheat codes, no need for elfs and their shit! The cheats work in Vavoom, right?

Share this post


Link to post
13 minutes ago, 𝕍𝔾𝔸 said:

From all of these you should support iwad, file, warp, deh, nomonsters. Then it should work with ZDL and other launchers.

thank you! basically, only "-iwad" and "-warp" is missing, other things are there (albeit in slightly different form).

 

15 minutes ago, 𝕍𝔾𝔸 said:

Can I set it to use the system midi device?

sorry, but nope. GNU/Linux doesn't have that, and i don't have windows, so it was WAY easier for me to eliminate all traces of non-pcm audio output. so only built-in synthesizers are working, and currently i have only one -- timidity. not that i have something against using system devices, it is only about time and proper implementation. if k8VaVoom will ever get any real windows developer, we'll add that feature back.

 

22 minutes ago, 𝕍𝔾𝔸 said:

Also, Doom has cheat codes, no need for elfs and their shit! The cheats work in Vavoom, right?

built-in cheats doesn't do exactly what i want. ;-) anyway, those elven cheats actually started my fork: i didn't intended to work on VaVoom as much as i am working on it now. i only wanted to add those three cheats, and headshots hack (i originally did that hack for GZDoom, in ACS, with added ACS callback in lineattack code). but then i just couldn't stop. so it is of historical value. and putting those switches in options menu was like: "look, i can do it!" ;-)

 

anyway, i'll move it all to well-hidden submenu when the time for UI comes. tbh, i rarely even see UI (i have set of scripts which mostly does what launchers do, so most of the time i don't have to enter menu at all), so UI sux even more than other parts of the code.

Share this post


Link to post

updated windows binary. brief changelog:

 

* widescreen option moved to "screen resolution" menu
* gameplay-breaking changes (including ketchup) are off by default in windows build
* if there is only one iwad in iwads directory, it will be autoselected
* if there are several iwads in iwads dir, engine will pefer DooM II iwad, then DooM iwad, then others (this can be changed with "-<game> cli arg")
* %DOOMWADDIR% envvar will be used as iwad directory, if no cli option given
* k8VaVoom will try to look for iwads in current directory, in binary file directory, and in various other places
* added support for some standard cli args ("-warp", "-iwad", "-skill", "-nomonsters"), so ZDL (and other launchers) should be happy
* when "-iwad" cli arg is given, engine will try to guess the game
* you can use both full path and only wad name in "-iwad"

Share this post


Link to post

Hm, so on Windows 10 it doesn't seem like it scales to fullscreen properly if you try to run at a resolution lower than native, my laptop is really low spec so I like to run the game at a lower resolution to get better FPS but when I try to run this port at 640x480 which is my normally used resolution for both doom and quake I just get the window docked at the lower left corner with the normal windowed mode size with the rest of the screen just being completely black, this should probably be fixed in the next update if possible

 

edit: another bug, the chainsaw "firing" sound doesn't stop properly when you do things like switch weapons or stop using it, it waits until the sound has completely played first

Edited by therektafire

Share this post


Link to post

ah. i guess i know what gone wrong there, but it need some more work to check (and rewrite some small parts of video code). i'll try to fix it in next update (which should come on weekend; or sooner if i'll find some time and inspiration ;-). thank you for your report.

 

> the chainsaw "firing" sound doesn't stop properly when you do things like switch weapons or stop using it, it waits until the sound has completely played first

yeah, a known bug. i didn't put it into known bugs list, 'cause i'm planning to fix it soon, but it looks like i am too optimistic here. anyway, thanks for reporting. (honest explanation: i absolutely don't know why it is broken, lol)

Edited by ketmar

Share this post


Link to post

thank you! from a brief inspection it looks like i fixed most of those things, and more (except misspellings -- i prolly added even more of mine). yet FreeDoom mapinfo looks like something i'll steal, 'cause i just added definitions for FreeDoom wads, but never bothered to put in proper mapinfos. it works, of course, but it isn't... "nice". ;-)

Share this post


Link to post

I just played five maps of Doom 2, runs pretty well. One thing I noticed is that Imp fireballs seem to always explode above the point they hit. I know it happens sometimes because of Doom's clunky collision code, right? But even in Chocolate Doom if you go to the courtyard with the 5 imps in MAP01 and let the fireballs hit the building, in Vavoom the fireballs explode above where they should but in Chocolate Doom they explode properly.

 

Also, when a user tests your port and loads up E1M1, then presses Space to open the first door and instead he jumps(!) ... this isn't a good look. Then soon later he will see some random "CRITICAL 10X" message on screen...

 

Personally I think you should gather ALL gameplay changing options under 1 sub-menu and have them Off by default. Dynamic lighting is not gameplay changing and I would keep it On by default because it is the best feature of the port so far.

 

I haven't encountered a Pain Elemental so far but I see its elven gift is On. Does that mean that Pain Elementals are nerfed by default in your port? :D

 

Also, I tried cheat codes like IDKFA, IDFA and I tried executing "give all" in the console and ... nothing. The original games and all ports have these cheats available, the player expects to type IDCLEV19 and warp to MAP19 for example.

Share this post


Link to post
2 hours ago, 𝕍𝔾𝔸 said:

One thing I noticed is that Imp fireballs seem to always explode above the point they hit

i'm not sure that i got it right. sounds more like a visual glitch. but i'll compare it with other sourceports, it may be that i just used to k8VaVoom way (it looks like something i broke, not inherited from the original codebase) of doing it wrong, and thus never noticed. tnx.

 

2 hours ago, 𝕍𝔾𝔸 said:

then presses Space to open the first door and instead he jumps(!) ... this isn't a good look

ah, default settings... i am especially good at choosing good defaults, as you probably already noticed. ;-) basically, my defaults are "everybody is ketmar, lol". what defaults will you suggest instead? space to open, and... ??? to jump? or, maybe, nothing at all, so user will not accidentally jump?

 

2 hours ago, 𝕍𝔾𝔸 said:

Then soon later he will see some random "CRITICAL 10X" message on screen...

but... but i am so proud of that feature! i just cannot turn it off by default! ;-)

yeah, i prolly should turn all "enhancements" off. my idea was to show people that the engine is something more than "just another doom sourceport", but now i think that i took a wrong turn here.

 

2 hours ago, 𝕍𝔾𝔸 said:

I haven't encountered a Pain Elemental so far but I see its elven gift is On. Does that mean that Pain Elementals are nerfed by default in your port? :D

"on" there means "PE attacks as it should". confusing, as all other options should be turned off to... well, actually turn 'em off. another example of my superior skills at UI design. will make it consistent with other options in one of next builds.

 

2 hours ago, 𝕍𝔾𝔸 said:

Also, I tried cheat codes like IDKFA, IDFA and I tried executing "give all" in the console and ... nothing. The original games and all ports have these cheats available, the player expects to type IDCLEV19 and warp to MAP19 for example.

console command to give things is "gimme". this, and imfunctional vanilla cheats are inherited from the original VaVoom code. i usually just type "gi" in console and press "tab", and then "gimme" appears, so i never thought that somebody mught be confused, or will have to guess a command.

that's why i have love/hate attitude to public testing: knowing people expectations is interesting thing, but actually implementing 'em... is suddenly not so interesting. ;-)

 

thank you, points taken. will try to fix it. yet i prolly won't reinstantiate vanilla keyboard cheats, and will leave "gimme" instead of "give", just to Be Different (and because vanilla cheats is PITA to implement without hardwiring 'em into C++ code; i'll think about making VaVoom C hooks for such things).

Share this post


Link to post

Thanks for taking my suggestions into consideration. I am the 33% of the userbase after all.

 

GZDoom by default has the Jump control set to "PAD_Y", obviously a gamepad button, so I guess you should leave it blank, if someone really wants to, they can set it to a key. Jumping breaks 100% of official maps and 99% of unofficial maps. Only a miniscule percentage of maps are created with jumping in mind.

 

Since cheats don't work please consider implementing at least some of them as console commands/aliases, like idkfa, idfa, idclevxx, that should be easier than getting them from the player's input during gameplay.

 

I tried loading Back To Saturn X Episode 1 and Vavoom just closes, I even ran it from a cmdline and there was no error message there! Also, what happened to the wipes at the start and end of levels? And what does the Renderer option do? Also which bit depth should I use?

 

Does it help if you take a look at Chocolate Doom's "Native MIDI" support? Is it a lot of work to support that on Windows?

Edited by 𝕍𝔾𝔸

Share this post


Link to post
54 minutes ago, 𝕍𝔾𝔸 said:

Thanks for taking my suggestions into consideration. I am the 33% of the userbase after all.

yeah. how it feels to be a someone with VIP support account? ;-)

 

54 minutes ago, 𝕍𝔾𝔸 said:

so I guess you should leave it blank

that's what i thought too. as you said, jumping is not something that used alot in DooM world. that wheelchair has no jump springs.

 

54 minutes ago, 𝕍𝔾𝔸 said:

consider implementing at least some of them as console commands/aliases, like idkfa, idfa, idclevxx

nice idea. will do.

 

54 minutes ago, 𝕍𝔾𝔸 said:

I tried loading Back To Saturn X Episode 1 and Vavoom just closes, I even ran it from a cmdline and there was no error message there!

it actually reports an error in "mapinfo", and in Wine it reports it to my terminal, but it seems that on real windows it cannot say anything. this is small parser bug, i'll fix it for the next release. if there is nothing more "unnatural" in BTSX, it will work.

if you're interested, parser is confused by the comma in "sky1 SKY1TALL, 0". VaVoom mapinfo parser is really outdated, and i never bothered to properly fix it, only added some hacks to parse mapinfos from some random wads i tried. somehow, i never tried BTSX with k8VaVoom.

 

54 minutes ago, 𝕍𝔾𝔸 said:

Also, what happened to the wipes at the start and end of levels?

they were absent in the original VaVoom OpenGL code, and i didn't wrote 'em too. one day i'll implement them -- now i have FBO with rendered picture, so it isn't that hard.

 

54 minutes ago, 𝕍𝔾𝔸 said:

And what does the Renderer option do?

VaVoom (and k8VaVoom) has two renderers: one with lightmapped lighting ("regular" one), and one with DooM3-style stenciled lighting ("advanced" one). you have to restart a level (or reload a save) to switch to a new renderer after changing the menu option. yet "advanced" renderer is REALLY slow (it can drop to 30-40 FPS even on E1M1), so i don't recommend it. besides, i think that lightmaps looks better (and lightmapped dynamic lights even casts shadows from level geometry -- it is hard to notice, but it is there).

i am planning to write a new rendering backend, which should be much faster with both "regular" and "advanced" renderer. but while it is not there, you'd better stick to "regular" renderer. "regular" will get some major speedup with dynamic lights (now shadow casting may seriously affect FPS if there are alot of Lost Souls, or barrels on screen) soon (i hope ;-).

 

the worst thing with "regular" renderer in the original VaVoom was that armor/health powerups were shining thru secret walls, thus making many secrets obvious. in k8VaVoom, if you turn options->video options->advanced->properly clip dynlights ON, dynamic lights will be properly clipped by secret walls (at least that is how it should work ;-).

 

as for bit depth, it doesn't matter much. i think that you're using 32-bit videomode anyway, so 32-bit will do. i don't even remember if it matters at all. stick with 32-bit depth, and i'll take a look at it, and will set a reasonable default for next builds.

 

54 minutes ago, 𝕍𝔾𝔸 said:

Does it help if you take a look at Chocolate Doom's "Native MIDI" support? Is it a lot of work to support that on Windows?

sadly, that prolly won't help. currently, k8VaVoom doesn't like the idea of passing midis (or any other sound data) to external drivers. it wants to synthesize PCM sound by itself, with its own synthesizers. i.e. the whole sound subsystem expects to get PCM data it can process and play with OpenAL-soft. and sound backend should be thread-safe too (OpenAL is thread-safe by design).

 

original code had some support for other MIDI devices, but i didn't had enough resources to make sense of it, so i removed it, and simplified sound backend alot. i will try to look at how it is done in Choco, but don't hold your breath.

 

p.s.: yeah, after two hackfixes in mapinfo parser, BTSX seems to work. at least it loads, and i can run around the first level.

Edited by ketmar

Share this post


Link to post

Then the Renderer options should be named: "Lightmapped lighting (recommended)" and "Stencil lighting"

Regular and Advanced are more confusing.

 

16-bit depth seems redundant, you should consider killing it, this is 2018!

 

Next binary you post, I will start a playthrough of the current DWmegawad Club target, which is Doom 404, which has nice small maps.

 

Why doesn't it print to the windows console? I see it is compiled as a Windows GUI executable, not as a console application. I think in this case you need to manually allocate a console. Or at least MessageBox fatal errors/exceptions?

Share this post


Link to post

so, BTSX works now. there are some rendering glitches here and there (looks like "flat floodfill exploits", not much), but i made a quick run for first two maps, and it seems to be playable.

 

12 minutes ago, 𝕍𝔾𝔸 said:

Then the Renderer options should be named: "Lightmapped lighting (recommended)" and "Stencil lighting"

Regular and Advanced are more confusing.

yeah. it was named this way in the original, and... see a note about my UI skills. will do.

 

12 minutes ago, 𝕍𝔾𝔸 said:

16-bit depth seems redundant, you should consider killing it, this is 2018!

actually, this whole thing seems to be redunant these days. even intel wannabe-GPUs can do 32 bits.

 

13 minutes ago, 𝕍𝔾𝔸 said:

which is Doom 404

it looks like it is a nice mapset, yet it is uploaded to googledrive, so no-no for me (i am not using file hosting services where i cannot get a direct download link without javascript, for religious reasons).

 

18 minutes ago, 𝕍𝔾𝔸 said:

Why doesn't it print to the windows console?

'cause i don't have windows, and in wine it prints to terminal. i.e. i never knew that it doesn't work. ;-) i will prolly dump it to text file for windows target.

 

20 minutes ago, 𝕍𝔾𝔸 said:

Or at least MessageBox fatal errors/exceptions?

yeah, standalone script runner does this, but i forgot to backport that code. tnx, will do.

 

thanks for all the testing and suggestions.

Share this post


Link to post
14 hours ago, ketmar said:

thank you! from a brief inspection it looks like i fixed most of those things, and more (except misspellings -- i prolly added even more of mine). yet FreeDoom mapinfo looks like something i'll steal, 'cause i just added definitions for FreeDoom wads, but never bothered to put in proper mapinfos. it works, of course, but it isn't... "nice". ;-)

If you do add it, please make sure to spell Freedoom correctly :) Capital F, lowercase d.

Share this post


Link to post
12 hours ago, VGA said:

Why doesn't it print to the windows console? I see it is compiled as a Windows GUI executable, not as a console application.

I can answer that.

 

In Windows, a program is either a console program or a GUI program.  Console programs can print to the console, and GUI programs cannot.  It is a really stupid system, but that is how it is.

Share this post


Link to post
5 hours ago, VGA said:

GUI programs can AllocConsole just fine.

yet there is no way to hide it. if i'll create standard windows console, it will stay there until .exe dies. definitely not something i want.

Share this post


Link to post
13 hours ago, chungy said:

If you do add it, please make sure to spell Freedoom correctly :) Capital F, lowercase d.

k8VaVoom already has Freedoom support. and yes, it spelled wrong. ;-)

Share this post


Link to post

To quote the guy from Sonic Colours: "AMAZING!"

 

VaVoom would've been a great port, had it not have many flaws preventing me from running it correctly.

Share this post


Link to post

I remembered that Windows allows you to redirect console output to a file, so I appended ">> log.txt" to the end of my commandline and saw the actual log. No need to paste it here since you solved that mapinfo parsing error.

 

For Windows users, here is an example:

vavoom -iwad "C:\pathto\doom2.wad" -file "C:\pathto\btsx_e1a.wad" -file "C:\pathto\btsx_e1b.wad" -deh "C:\pathto\btsx_e1.deh"  >> log.txt

 

Share this post


Link to post

Tried this out. The built-in Timidity worked for me as well as any other SDL Doom source port. My biggest complaint is that the game is unplayable without freelook turned on, as there is no auto-aim for non rockets/plasma nor does there appear to be an option for it.

Share this post


Link to post
18 hours ago, VGA said:

GUI programs can AllocConsole just fine.

Ah I never knew about that function.

Share this post


Link to post
12 hours ago, Danfun64 said:

My biggest complaint is that the game is unplayable without freelook turned on, as there is no auto-aim for non rockets/plasma nor does there appear to be an option for it.

yeah, it was easier to turn it off in weapon definition than to make it dynamically switchable. that is, i wasn't very familiar with VaVoom code at the time, and then just forgot about that change. will make it switchable from options menu for the next build. tnx for reminding.

 

15 hours ago, HavoX said:

VaVoom would've been a great port, had it not have many flaws preventing me from running it correctly.

then you may try my fork. it has alot (well... more than one) of crash bugs fixed (including scripting bugs), and better VM crash diagnostics (i have a full backtrace with line numbers -- dunno how Janis managed to debug VC code without this!).

 

too bad that full VaVoom power is well-hidden, as nobody really tried to learn VaVoom C (except, probably, guys from Korax RPG project). but i can't really blame people here: it is not really fun to do it without proper documentation.

Share this post


Link to post
Guest
This topic is now closed to further replies.
×