Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - S.O.P.M.

Seems to be some fantastic and useful work, many thanks. That's fine  :)
Do you refer to the latest version of AE? I still doesn't use it but plan to install it in the hope I can get everything to work again soon after.
Thanks again you all, I was able to handle the issues. I overlooked that some procedure still worked with two dimensions while I already introduced 3. Finally there was a situation where some access to the third dimension happened but only 2 were present at this time. Because internally GLBasic always works with one dimension as I heared, within some boundaries the fault could not be detected, I guess. I dim for example [3][3][2] but can access [6][0] due to the third dimension. Something like this, I think. Fortunately everything is working fine again so I can continue.

Have a nice day, guys :)

Do you mean a file the compiler needs for proper operation or a media file my app does access to?
I ask because I've a save routine for file checking (DOESFILEEXIST and IF OPENFILE()) so I wonder about it.
But thanks, I'll check the media files first!

Another error puzzles me currently: if an specific 3 dimensional array where the third dimension is always 2 exceeds the boundary of 6 elements in the first or second dimension, I got a "*** Unhandled exception *** EXCEPTION_ACCESS_VIOLATION" and my app crashes completely. Windows tells me that the application doesn't work anymore and I have to close it :(

Thank you Marmor, indeed my app wanted to load 3 media files with the AE CheckAsset function that doesn't exist anymore. Now the "error: 3" is gone.
Hi guys,

since a few days I suddenly got the compiler error "error: 3" for win compiling. My code seems to run fine though. I've absolutely no clue what this error mean so I ask you, did you ever discover them too? "Injection started" and then 6 lines of "error: 3" without any hint what's going wrong. I made some changes before, yes, but I was not able to find out what changes caused this. I do many backups but to restore an old version could kill my progress.

Any ideas?

Now I've written a new shifting procedure that uses less code and hopyfully will work for any given array but if it will run with similar speed that's the next question. At first I copied element by element inside two loops. Now I copy the whole array to another array with ArrCop[] = Arr[] and then paste the copy to the original with the given x and y offset. Still clearing the remaining elements with a new loop would be stupid. The following code is untested, please take a look on it and tell me what do you think it's the best way to do the task by using basic only. To remember, I need to shift the contents of any array with a single procedure to any extension - using basic code only, as less as possible and fast.

Code (glbasic) Select
FUNCTION ShiftArray: Arr%[], XExt%, YExt%

LOCAL ArrCop%[]

IF XExt < 0
    ACX = ABS(XExt)
    AX = XExt
IF YExt < 0
    ACY = ABS(YExt)
    AY = YExt
W = BOUNDS(Arr[], 0)
H = BOUNDS(Arr[], 1)
ArrCop[] = Arr[]
FOR i = AX TO H - AY - 1
    FOR j = AY TO W - AX - 1
        Arr[AX + j][AY + i] = ArrCop[ACX + j][ACY + i]


Zeroization is still not in there. XExt and YExt are the given movements, positive values shift right, negative ones left. ACX and ACY are the start coordinates where the copy will read, AX and AY the coordinates to start writing on the origin array. Would like to replace the first two IF-ENDIF's by formulas to set the right values but can't figure out how. Finally want to build the zeroization inside the double loop not using another one for that.
Ok, here is some video to show the editor in action. You can see at the end, borders will be shown as soon as objects are placed in the array. Dependent on the overall width and height of all objects, borders will change. So it's always possible to place new objects at any position as long as the overall size remains legit.
Thank you very much, it becomes really interesting here but have to say not able to follow in any aspect. Actually my game (or better, the editor of it) runs smooth at 60 fps on my SGS3 phone at this time. I think the best way to continue is to first show you in detail what I'm speaking about. So please wait for a short video demonstration I'll upload till tomorrow.
That sounds like a great idea to save 2D data in a one dimensional array. I've a borderless operating level editor where the user can add objects at any position as long as the width and height of the entire structure doesn't exceed set limits. So I always have to shift data within the whole array. But now as I realized that DIMPUSH also doesn't do the job because it doesn't matter if I work with one or two dimensions I... :S
Good morning,

I wonder how to use DIMPUSH in the following way, if possible. I've a 128 x 24 two dimensional array and I'm looking for an easy way (as less code as possible and standard basic only, of course) to add emtpy rows and columns to it.

To add these rows/columns below and on the right side I simply can REDIM that array - everybody knows that. But I also want to add on top and on the left side! Then I have to shift the array contents element by element which could be quite slow and inefficient. How can I use DIMPUSH for that?

What I also want to know is, how do professional programmers handle this situation high efficient with any array they use in their application? With the same code/function? Working with lists maybe?

The perfect solution for me would be to have one single function where I can pass every array and add a row or columns on every position. For example something like AddColumnRow(Array[], [Row][Column], Position)

Thanks for your attention, have a good day.

Good morning and Merry Christmas!
As a christian or at least a believer on god this was a pleasant reading for me. Thanks! But there're always times that I have where I almost lose my trust. I had it behind me shortly. Now I feel things may become balanced again. It's hard to describe...
However, this is what I wanted to tell. Have a good time!
Yes, that helps. If this is necessary for stable Android operation, there is no reason to change anything for now. You did a great job for the Android part - without your work, compiling for Android would be a pain. So all is fine if my app will run well after the update which I'll check later on. Have a good day!
@spacefractal Awesome, thanks. That seems to be very clever. Important is that my app can still use the standard operation of file and directory handling. The user data of my game is currently saved in the appdata folder that can be retrieved with PLATFORMINFO$(). Because DOESFILEEXIST will copy every requested file to the memory I'll have copies of all user data files in memory unnecessarily??
What exactly does this mean if I want to use the new AE for my existing project? How do I now load sprites and other resources - by using the internal DOESFILEEXIST command before calling LOADSPRITE? Or can I, after installing the new AE, load my media like the default way? If not, does this mean DOESFILEEXIST cannot be used in the way as it was designated? I ask because I need the command for the usual operation to check files that are data files for my game, not media resources! Please clarify that.
Muss und sollte am Ende nicht jeder selbst für sich herausfinden, was Unity für einen ist, ob und in wie weit man es einsetzen möchte? Alleine der Neugier halber wäre es mir einen Blick wert. Naja und an dieser Stelle würde es sich bereits glatt lohnen, einen neuen Thread zu eröffnen, um mal über diese Option der Spieleentwicklung im Detail zu debattieren.