delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/05/23/10:17:38

From: Bowers <bowrsfam AT ntplx DOT net>
Newsgroups: comp.os.msdos.djgpp
Subject: segmentation errors
Date: Thu, 22 May 1997 18:08:34 -0400
Organization: _
Lines: 58
Message-ID: <3384C3E2.730A@ntplx.net>
Reply-To: bowrsfam AT ntplx DOT net
NNTP-Posting-Host: p21-14.hftd.dialin.ntplx.com
Mime-Version: 1.0
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Greetings.

Whenever I compile and run the following code, I always get segmentation
errors.  Can anyone help me fix the problem?

Thank you VERY much,
N Bowers

void Load_Sprite(sprite_ptr sprite, pcx_image_ptr image, int number)
{
 

 int offset = 0, work_offset;
 int curr_x_pos = 0, count1, y = 0, x = 0;
 int curr_y_pos = 0;
 char *work_sprite;

 (char *)work_sprite = (char *)sprite->frames[sprite->num_frames];  

 for(count1 = 0; count1 < number; count1++)
    {
     //sets up the offset by finding the current frame, then factoring
the
     //one pixel boarder between each frame

     offset = SCREEN_WIDTH * (curr_y_pos * sprite->height) + (curr_x_pos
* sprite->width) + curr_x_pos;

     work_offset = 0;

     for(y = 0; y < sprite->height; y++)
        {
         for(x = 0; x < sprite->width; x++)
            {
             work_sprite[work_offset + x] = image->buffer[offset + x];
            }

         offset += SCREEN_WIDTH;
         work_offset += sprite->width;
        }

     sprite->num_frames++;

     curr_x_pos += 1;  //increase curr pos

     if(curr_x_pos > 4)   //maximum size of sprite will be 64 pixels
       {
       curr_y_pos += 1;
       curr_x_pos = 0;
       }

     if(curr_y_pos > 2)
       {
        return;
       }

  }
}

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019