Next Generation Emulation banner

Ugh coding problems

1431 Views 4 Replies 3 Participants Last post by  Kanodin
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;
}
See less See more
1 - 5 of 5 Posts
I know next to nothing about C++... but I googled the error and I thought this site might be of help.
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.
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:

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;
}
See less See more
Omg dude thank you, lol I knew I was over-looking something what a pain in the arse.
1 - 5 of 5 Posts
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top