Emuforums.com

Go Back   Emuforums.com > General Discussion > Web development / Programming
Home Register Downloads FAQ Members List Calendar Arcade Mark Forums Read

Reply
 
Thread Tools Display Modes
Old July 8th, 2005, 13:43   #1
Kanodin
Emu author
 
Kanodin's Avatar
 
Join Date: Jan 2002
Location: Dunno
Posts: 668
Ugh coding problems

Well i've been over this code like 100 times, and can't get the error to go away so maybe if I had an extra set of eyes they could tell me what was up anyway I did not write this code, I am just trying to fix it and make it compile but whenever I do try to compile this error pops up.


error C2661: 'ostream::write' : no overloaded function takes 1 arguments

I dunno if i'm just over-looking something simple or not but if someone can point out how to correct the problem it lies within the fout.write part of the code all five of the errors i'm getting anyway without further delay here is the code, the main function is to write geodata 1 layer maps so that we can have working geodata for lineage 2 instead of the bugged stuff we have now anyway hope you guys can help lol.



Code:
/*
Geodata Generator for Lineage 2
*/
#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
int main () {

int MAP_HEIGHT[] = {
   //38-3F
   (0xE318E318),   (0xE46DE46D),   (0xE5C2E5C2),   (0xE717E717),   
   (0xE86CE86C),   (0xE9C1E9C1),   (0xEB16EB16),   (0xec6bec6b),   
   //40-4f
   (0xedc0edc0),   (0xef15ef15),   (0xf06af06a),   (0xf1bff1bf),   
   (0xf314f314),   (0xf469f469),   (0xf5bef5be),   (0xf713f713),   
   (0xf868f868),   (0xf9bdf9bd),   (0xfb12fb12),   (0xfc67fc67),   
   (0xfdbcfdbc),   (0xff11ff11),   (0x00670067), (0x01bc01bc),   
   //50-5f
   (0x03110311),   (0x04660466),   (0x05bb05bb),   (0x07100710),   
   (0x08650865),   (0x09ba09ba),   (0x0b0f0b0f),   (0x0c640c64),   
   (0x0db90db9),   (0x0f0e0f0e),   (0x10631063),   (0x11b811b8),   
   (0x130d130d),   (0x14621462),   (0x15b715b7),   (0x170c170c),
   //60-6f
   (0x18611861),   (0x19b619b6),   (0x1b0b1b0b),   (0x1c601c60),   
   (0x1db51db5),   (0x1f0a1f0a),   (0x205f205f),   (0x21b421b4),   
   (0x23092309),   (0x245e245e),   (0x25b325b3),   (0x27082708),   
   (0x285d285d),   (0x29b229b2),   (0x2b072b07),   (0x2c5c2c5c),   
   //70-7f
   (0x2db12db1),   (0x2f062f06),   (0x305b305b),   (0x31b031b0),   
   (0x33053305),   (0x345a345a),   (0x35af35af),   (0x37043704),   
   (0x38593859),   (0x39ae39ae),   (0x3b033b03),   (0x3c583c58),   
   (0x3dad3dad),   (0x3f023f02),   (0x40574057),   (0x41ac41ac),   
   //80-8f
   (0x43014301),   (0x44564456),   (0x45ab45ab),   (0x47004700),   
   (0x48554855),   (0x49aa49aa),   (0x4aff4aff),   (0x4c544c54),   
   (0x4da94da9),   (0x4efe4efe),   (0x50535053),   (0x51a851a8),   
   (0x52fd52fd),   (0x54525452),   (0x55a755a7),   (0x56fc56fc),   
   //90-9f
   (0x58515851),   (0x59a659a6),   (0x5afb5afb),   (0x5c505c50),   
   (0x5da55da5),   (0x5efa5efa),   (0x604f604f),   (0x61a461a4),   
   (0x62f962f9),   (0x644e644e),   (0x65a365a3),   (0x66f866f8),   
   (0x684d684d),   (0x69a269a2),   (0x6af76af7),   (0x6c4c6c4c),   
   //a0-a5
   (0x6da16da1),   (0x6ef66ef6),   (0x704b704b),   (0x71a071a0),   
   (0x72F572F5), (0x744A744A)
};

int RGB[] = {//0x3
         (0x38), (0x39), (0x3a), (0x3b),   (0x3C),   (0x3D),   (0x3E),   (0x3F),
         //0x4
         (0x40),   (0x41), (0x42), (0x43), (0x44), (0x45), (0x46), (0x47),   
         (0x48), (0x49), (0x4a), (0x4b), (0x4c), (0x4d), (0x4e),   (0x4f),
         //0x5
         (0x50), (0x51), (0x52), (0x53), (0x54), (0x55),   (0x56), (0x57),
         (0x58), (0x59), (0x5a), (0x5b), (0x5c),   (0x5d), (0x5e), (0x5f),
         //0x6
         (0x60), (0x61), (0x62), (0x63),   (0x64), (0x65), (0x66), (0x67),
         (0x68), (0x69), (0x6a),   (0x6b), (0x6c),   (0x6d), (0x6e), (0x6f),
         //0x7
         (0x70), (0x71),   (0x72), (0x73), (0x74), (0x75), (0x76), (0x77),
         (0x78),   (0x79), (0x7a), (0x7b), (0x7c), (0x7d), (0x7e), (0x7f),   
         //0x8
         (0x80), (0x81), (0x82), (0x83), (0x84), (0x85), (0x86),   (0x87),
         (0x88), (0x89), (0x8a), (0x8b), (0x8c), (0x8d),   (0x8e), (0x8f),
         //0x9
         (0x90), (0x91), (0x92), (0x93), (0x94),   (0x95), (0x96), (0x97),
         (0x98), (0x99), (0x9a), (0x9b),   (0x9c), (0x9d), (0x9e), (0x9f),
         //0xA
         (0xa0), (0xa1), (0xa2),   (0xa3), (0xa4), (0xa5)
};
int BREAK  = '00';
int MAP_HEAD[] = { 22, 25, 128 };
char MAP_NAME[] = "output_conv.dat";
int HEADER[] = {0x00001000,0x00,0x00000100,0x00000100};
int count = 0,ch;
char BmpFile[256] = "lineage2.bmp";

ifstream fin(BmpFile, ios::binary);
ofstream fout(MAP_NAME, ios::binary);
fout.write ((&MAP_HEAD)); 
fout.write ((&HEADER));
while (!fin.eof()) {

   ch = fin.get();
      fin.get();
      fin.get();
      for (int i = 0; i < 110; i++){
         if (ch == RGB[i]){
            fout.write ((&BREAK));
            fout.write ((&MAP_HEIGHT[i]));
            fout.write ((&BREAK));
		 }
	  }
}
fout.close();
return 0;
}
Kanodin is offline   Reply With Quote

Advertisement [Remove Advertisement]

Old July 8th, 2005, 13:51   #2
Vanit
Heretic
 
Vanit's Avatar
 
Join Date: Jan 2004
Location: Australia!
Posts: 2,764
I know next to nothing about C++... but I googled the error and I thought this site might be of help.
__________________
Click here to download my Sin and Punishment English translation.
Vanit is offline   Reply With Quote

Old July 8th, 2005, 14:12   #3
Kanodin
Emu author
 
Kanodin's Avatar
 
Join Date: Jan 2002
Location: Dunno
Posts: 668
Hmmm lets try and see if that works, damn error is pissing me off lol, nope that didn't work either what a pain in the ass, thats it i'm going to bed.
Kanodin is offline   Reply With Quote

Old July 8th, 2005, 21:42   #4
Ramsus K
A1C
 
Ramsus K's Avatar
 
Join Date: Jan 2004
Location: California
Posts: 230
ofstream.write takes two arguments: a char * pointer to a block of data and the size of that block in bytes.

ofstream is a specialization of the basic_ofstream class template for the char type, which inherits from the ostream template. Here's the definition of write:

Quote:
basic_ostream<charT,traits>& write(const char_type* s, streamsize n);
Writes n characters from s. If the output fails after any character, write sets badbit and stops writing. The return value is *this.
so in the ofstream class it becomes:

ofstream& write(const char *s, streamsize n);

Not too different from the standard C library eh?

I suggest getting a good C++ library reference.

EDIT: Here's the simple solution:
Code:
/*
Geodata Generator for Lineage 2
*/

#include <iostream>
#include <fstream>
#include <cstdio>

using namespace std;

int main()
{
  int MAP_HEIGHT[] = {
    //38 - 3 F
    (0xE318E318), (0xE46DE46D), (0xE5C2E5C2), (0xE717E717),
    (0xE86CE86C), (0xE9C1E9C1), (0xEB16EB16), (0xec6bec6b),
    //40 - 4 f
    (0xedc0edc0), (0xef15ef15), (0xf06af06a), (0xf1bff1bf),
    (0xf314f314), (0xf469f469), (0xf5bef5be), (0xf713f713),
    (0xf868f868), (0xf9bdf9bd), (0xfb12fb12), (0xfc67fc67),
    (0xfdbcfdbc), (0xff11ff11), (0x00670067), (0x01bc01bc),
    //50 - 5 f
    (0x03110311), (0x04660466), (0x05bb05bb), (0x07100710),
    (0x08650865), (0x09ba09ba), (0x0b0f0b0f), (0x0c640c64),
    (0x0db90db9), (0x0f0e0f0e), (0x10631063), (0x11b811b8),
    (0x130d130d), (0x14621462), (0x15b715b7), (0x170c170c),
    //60 - 6 f
    (0x18611861), (0x19b619b6), (0x1b0b1b0b), (0x1c601c60),
    (0x1db51db5), (0x1f0a1f0a), (0x205f205f), (0x21b421b4),
    (0x23092309), (0x245e245e), (0x25b325b3), (0x27082708),
    (0x285d285d), (0x29b229b2), (0x2b072b07), (0x2c5c2c5c),
    //70 - 7 f
    (0x2db12db1), (0x2f062f06), (0x305b305b), (0x31b031b0),
    (0x33053305), (0x345a345a), (0x35af35af), (0x37043704),
    (0x38593859), (0x39ae39ae), (0x3b033b03), (0x3c583c58),
    (0x3dad3dad), (0x3f023f02), (0x40574057), (0x41ac41ac),
    //80 - 8 f
    (0x43014301), (0x44564456), (0x45ab45ab), (0x47004700),
    (0x48554855), (0x49aa49aa), (0x4aff4aff), (0x4c544c54),
    (0x4da94da9), (0x4efe4efe), (0x50535053), (0x51a851a8),
    (0x52fd52fd), (0x54525452), (0x55a755a7), (0x56fc56fc),
    //90 - 9 f
    (0x58515851), (0x59a659a6), (0x5afb5afb), (0x5c505c50),
    (0x5da55da5), (0x5efa5efa), (0x604f604f), (0x61a461a4),
    (0x62f962f9), (0x644e644e), (0x65a365a3), (0x66f866f8),
    (0x684d684d), (0x69a269a2), (0x6af76af7), (0x6c4c6c4c),
    //a0 - a5
    (0x6da16da1), (0x6ef66ef6), (0x704b704b), (0x71a071a0),
    (0x72F572F5), (0x744A744A)
  };

  int RGB[] = {			//0x3
    (0x38), (0x39), (0x3a), (0x3b), (0x3C), (0x3D), (0x3E), (0x3F),
    //0x4
    (0x40), (0x41), (0x42), (0x43), (0x44), (0x45), (0x46), (0x47),
    (0x48), (0x49), (0x4a), (0x4b), (0x4c), (0x4d), (0x4e), (0x4f),
    //0x5
    (0x50), (0x51), (0x52), (0x53), (0x54), (0x55), (0x56), (0x57),
    (0x58), (0x59), (0x5a), (0x5b), (0x5c), (0x5d), (0x5e), (0x5f),
    //0x6
    (0x60), (0x61), (0x62), (0x63), (0x64), (0x65), (0x66), (0x67),
    (0x68), (0x69), (0x6a), (0x6b), (0x6c), (0x6d), (0x6e), (0x6f),
    //0x7
    (0x70), (0x71), (0x72), (0x73), (0x74), (0x75), (0x76), (0x77),
    (0x78), (0x79), (0x7a), (0x7b), (0x7c), (0x7d), (0x7e), (0x7f),
    //0x8
    (0x80), (0x81), (0x82), (0x83), (0x84), (0x85), (0x86), (0x87),
    (0x88), (0x89), (0x8a), (0x8b), (0x8c), (0x8d), (0x8e), (0x8f),
    //0x9
    (0x90), (0x91), (0x92), (0x93), (0x94), (0x95), (0x96), (0x97),
    (0x98), (0x99), (0x9a), (0x9b), (0x9c), (0x9d), (0x9e), (0x9f),
    //0xA
    (0xa0), (0xa1), (0xa2), (0xa3), (0xa4), (0xa5)
  };
  int BREAK = '0';
  int MAP_HEAD[] = { 22, 25, 128 };
  char MAP_NAME[] = "output_conv.dat";
  int HEADER[] = { 0x00001000, 0x00, 0x00000100, 0x00000100 };
  int count = 0, ch;
  char BmpFile[256] = "lineage2.bmp";

  ifstream fin(BmpFile, ios::binary);
  ofstream fout(MAP_NAME, ios::binary);
  fout.write((char *)(&MAP_HEAD), sizeof(int)*3);
  fout.write((char *)(&HEADER), sizeof(int)*4);
  while (!fin.eof()) {
    ch = fin.get();
    fin.get();
    fin.get();
    for (int i = 0; i < 110; i++) {
      if (ch == RGB[i]) {
        fout.write((char *)(&BREAK), sizeof(int));
        fout.write((char *)(&MAP_HEIGHT[i]), sizeof(int));
        fout.write((char *)(&BREAK), sizeof(int));
      }
    }
  }
  fout.close();
  return 0;
}

Last edited by Ramsus K; July 8th, 2005 at 22:11..
Ramsus K is offline   Reply With Quote

Old July 8th, 2005, 22:17   #5
Kanodin
Emu author
 
Kanodin's Avatar
 
Join Date: Jan 2002
Location: Dunno
Posts: 668
Omg dude thank you, lol I knew I was over-looking something what a pain in the arse.
Kanodin is offline   Reply With Quote

Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT +1. The time now is 23:30.

© 2006 - 2012 Emu Forums | About Emu Forums | Advertisers | Investors | Legal | A member of the Crowdgather Forum Community


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2013, vBulletin Solutions, Inc.