Jump to content
IGNORED

Compile error with STRPTR


Recommended Posts

I'm trying to execute the following:

 

jsfLoadClut((unsigned short *)STRPTR(BMPKANOIDLE_clut),0,255);

 

(where BMPKANOIDLE is a sprite in my rapinit.s file.)  

 

However, I'm getting the following build error for the jsfLoadClut() line:

 

"error: lvalue required as unary '&' operand"

 

In my assets.txt file:
ROM,BMPKANOIDLE,gfx_clut,ASSETS\GFX\kano_idle.BMP

 

In my rapinit.s file:

    dc.l    1                                ; (REPEAT COUNTER)                 ; Create this many objects of this type (or 1 for a single object)
    dc.l    is_active                        ; sprite_active                    ; sprite active flag
    dc.w    210,0                            ; sprite_x                        ; 16.16 x value to position at
    dc.w    100,0                            ; sprite_y                        ; 16.16 y value to position at
    dc.w    0,0                                ; sprite_xadd                    ; 16.16 x addition for sprite movement
    dc.w    0,0                                ; sprite_yadd                    ; 16.16 y addition for sprite movement
    dc.l    72                                ; sprite_width                    ; width of sprite (in pixels)
    dc.l    134                                ; sprite_height                    ; height of sprite (in pixels)
    dc.l    is_inactive                        ; sprite_flip                    ; flag for mirroring data left<>right
    dc.l    0                                ; sprite_coffx                    ; x offset from center for collision box center
    dc.l    0                                ; sprite_coffy                    ; y offset from center for collision box center    
    dc.l    72/2                            ; sprite_hbox                    ; width of collision box
    dc.l    134/2                            ; sprite_vbox                    ; height of collision box
    dc.l    BMPKANOIDLE                        ; sprite_gfxbase                ; start of bitmap data
    dc.l    8                                ; (BIT DEPTH)                    ; bitmap depth (1/2/4/8/16/24)
    dc.l    is_RGB                            ; (CRY/RGB)                        ; bitmap GFX type
    dc.l    is_trans                        ; (TRANSPARENCY)                ; bitmap TRANS flag
    dc.l    72*134                        ; sprite_framesz                ; size per frame in bytes of sprite data
    dc.l    72                            ; sprite_bytewid                ; width in bytes of one line of sprite data
    dc.l    1                                ; sprite_animspd                ; frame delay between animation changes
    dc.l    6                                ; sprite_maxframe                ; number of frames in animation chain
    dc.l    ani_rept                        ; sprite_animloop                ; repeat or play once
    dc.l    edge_wrap                        ; sprite_wrap                    ; wrap on screen exit, or remove
    dc.l    spr_inf                            ; sprite_timer                    ; frames sprite is active for (or spr_inf)
    dc.l    spr_linear                        ; sprite_track                    ; use 16.16 xadd/yadd or point to 16.16 x/y table
    dc.l    0                                ; sprite_tracktop                ; pointer to loop point in track table (if used)
    dc.l    spr_unscale                        ; sprite_scaled                    ; flag for scaleable object
    dc.l    %00100000                        ; sprite_scale_x                ; x scale factor (if scaled)
    dc.l    %00100000                        ; sprite_scale_y                ; y scale factor (if scaled)
    dc.l    -1                                ; sprite_was_hit                ; initially flagged as not hit
    dc.l    0                            ; sprite_CLUT                    ; no_CLUT (8/16/24 bit) or CLUT (1/2/4 bit)
    dc.l    cant_hit                        ; sprite_colchk                    ; if sprite can collide with another
    dc.l    cd_keep                            ; sprite_remhit                    ; flag to remove (or keep) on collision
    dc.l    single                            ; sprite_bboxlink                ; single for normal bounding box, else pointer to table
    dc.l    1                                ; sprite_hitpoint                ; Hitpoints before death
    dc.l    2                                ; sprite_damage                    ; Hitpoints deducted from target
    dc.l    72                            ; sprite_gwidth                    ; GFX width (of data)
 

 

I've looked at other examples, and I don't see the "_clut" variable defined anywhere else.  Any ideas why this is bombing out?

 

Link to comment
https://forums.atariage.com/topic/355148-compile-error-with-strptr/
Share on other sites

STRPTR is probably a macro to get adress of the clut file.

This file is generated inside build folder, alongside the gfxdata file, this is done by the build script 

For exemple for gb.bmp file

image.thumb.png.0755e9415bd0b0e55974455889ac2bca.png

What does the build.log in the build folder says about BMPKANOIDLE ?

you only want to use STRPTR if the asset is in RAM.  If it's in ROM then it's not required.  Check out some of the c examples to see.

 

Eg. ABS  (RAM)

jsfLoadClut((unsigned short *)STRPTR(spritename_clut),2,16);

 

vs ROM

jsfLoadClut((unsigned short *)(void*)(spritename_clut),2,16);

  • Like 1
2 hours ago, Sporadic said:

you only want to use STRPTR if the asset is in RAM.  If it's in ROM then it's not required.  Check out some of the c examples to see.

 

Eg. ABS  (RAM)

jsfLoadClut((unsigned short *)STRPTR(spritename_clut),2,16);

 

vs ROM

jsfLoadClut((unsigned short *)(void*)(spritename_clut),2,16);

Perfect, that worked - thank you!

  • Like 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...