Difference between revisions of "Excellence IRC Logs 20113 - OOP344"

From CDOT Wiki
Jump to: navigation, search
(Created page with 'Sandip> hi <cap6> I'm responding, but it doesnt seem to be going through <cap6> _flags is an unsigned int so there's 32 bits <cap6> if selected = true set the _cnt bit in _flags …')
 
(Replaced content with 'File:log.jpg')
Line 1: Line 1:
Sandip> hi
+
[[File:log.jpg]]
<cap6> I'm responding, but it doesnt seem to be going through
 
<cap6> _flags is an unsigned int so there's 32 bits
 
<cap6> if selected = true set the _cnt bit in _flags to 1
 
<Sandip> and what he meant by update pattern ?
 
<cap6> say for instance the bits in _flags is 000000000001110000001111
 
<cap6> every 1 in that pattern matches up with a checked checkmark
 
<Sandip> ok
 
<Sandip> then
 
<cap6> the full line would be
 
<cap6> if (selected==true) _flags = _flags
 
<cap6> dammnit
 
<cap6> if (selected==true) _flags = _flags | 1 << _cnt;
 
<cap6> that will update the bit pattern
 
<Sandip> _cnt is the bit we ARE looking at you mean  ?
 
<cap6> _cnt is how many checkmarks we've already added so by leftshifting _cnt times you set the correct bit
 
<Sandip> Can you be able to correct my code ? As this function is the main function
 
* [cap6] (~cap6@bas1-aurora91-3096739336.dsl.bell.ca): ...
 
* [cap6] #seneca-oop344
 
* [cap6] holmes.freenode.net :London, UK
 
* [cap6] idle 00:01:30, signon: Tue Dec 06 18:21:23
 
* [cap6] is logged in as cap6
 
* [cap6] End of WHOIS list.
 
<Sandip> I am quite understanding what your saying now
 
<Sandip> we got 32 checkbox
 
<Sandip> and when we click on any of them we have to update bit pattern according to
 
<cap6> yup you have to change the bit that corresponds to the clicked checkmark
 
<Sandip> shoudn't it be like this if (selected==true) _flags = _flags | 1 << (_cnt - 1);
 
<cap6> it all depends on when you increase _cnt
 
<cap6> if you dont increase _cnt till the very end of the function then you dont need the -1
 
<Sandip> so can you go into my branch and pick checklist folder and edit that function for me and commit
 
<cap6> alright
 
<Sandip> so that credit will goes to your account
 
<Sandip> as you helped me doing this function
 
<Sandip> still when i run my code I am getting wired errors ?
 
<cap6> the only problem that I'm getting is with draw
 
<cap6> and that's only because it hasnt been written yet
 
<cap6> I committed a working add to your branch
 
<Sandip> well we just need to call draw function from chekmarks thats it
 
<Sandip> I already done that
 
<cap6> no
 
<cap6> by saying draw(fn);
 
<Sandip> ya
 
<Sandip> I did that
 
<cap6> you've created infinite recursion
 
<Sandip> didnt you see that
 
<Sandip> I am done with all of other functions
 
<Sandip> ohh
 
<Sandip> I seee thats why i am getting weird erros
 
<cap6> you're calling CChecklist::draw(fn) within CChecklist::draw(fn)
 
<Sandip> should I have to create my own draw function
 
<cap6> o yeah
 
<cap6> you have to draw each checkmark
 
<cap6> and call CFrame::draw();
 
<Sandip> the way you did in checkmark class right ?
 
<cap6> for each _checkmarks you just call their draw()
 
<cap6> _checkmarks[i]->draw();
 
<Sandip> so I go through  all check mark using _cur variable and then call that function
 
<Sandip> right ?
 
<cap6> you can just use i
 
<cap6> and make a for loop
 
<Sandip> ok I do that and let you know
 
<cap6> k
 
<Sandip> ya it draws the checkmarks but at the end gives some violation error
 
<Sandip> Unhandled exception ?
 
<cap6> you probably tried to draw a checkmark that wasnt there
 
<cap6> like you went past _cnt
 
<Sandip> ok
 
<Sandip> ya your right ?
 
<Sandip> fixed that
 
<Sandip> I got a great help from you
 
<cap6> np
 
<Sandip> be right here. I will come after fixing some of the things and will let you know for some other help I need. One more thing we should update our team page with our chat log
 
<cap6> I dont think we can link the chat if it's private like this
 
<Sandip> why so
 
<Sandip> I can take either screen shot or copy all our chat
 
<cap6> that's true I guess
 
<cap6> didnt think about that
 
<Sandip> well tell me draw function accept parameter fn
 
<Sandip> what is that
 
<Sandip> do we have to use fn or _cnt ?
 
<Sandip> to draw checklist
 
<cap6> you can just leave it blank
 
<cap6> it doesnt affect the checklist
 
<Sandip> I used _cnt for now
 
<cap6> cdialog.draw is that only one that actually uses the fn parameter
 
<Sandip> I dont know I think I have some bugs in my edit function when I try to select another checkmarks loop goes infinite
 
<cap6> could be a bunch of different things
 
<Sandip> what could be the reason ?
 
<cap6> Where's the infinite loop actually happening?
 
<Sandip> Inside edit function
 
<Sandip> take a look to my code
 
<Sandip> I have written key = edit();
 
<Sandip> might be that causes to happen infinite looping
 
<Sandip> as I am already inside the edit function
 
<cap6> yeah you cant do that
 
<cap6> key = _checkmarks[_cur].edit()
 
<Sandip> I tried that
 
<Sandip> but that gives me an error
 
<Sandip> I used console.getKey();
 
<cap6> that's different
 
<cap6> you have to call the checkmark edit
 
<Sandip> but why ? as your already inside your edit function
 
<Sandip> you just need to grab a key
 
<cap6> you're in the checklist edit not the checkmark's edit
 
<Sandip> key = _checkmarks[_cur]->edit()
 
<Sandip> this line causes an error to occur
 
<cap6> what's the error?
 
<Sandip> access violation when I hit enter
 
<Sandip> when i hit enter/left/right any key
 
<Sandip> i got access violation error
 
<cap6> I'm not sure what's causing it
 
<cap6> o
 
<cap6> _checkmarks[i] became null somehow
 
<Sandip> ok tell me when I go through all check marks how do I make them checked or unchecked
 
<Sandip> using _flags ?
 
<cap6> _checkmarks[i]->checked(true or false)
 
<cap6> then you have to update the _flag
 
<Sandip> _flags = _checkmarks[i]->checked() ? 1: 0;
 
<Sandip> right
 
<cap6> no
 
<cap6> you have to use bitwise operators
 
<Sandip> _flags = 1 << _cur;
 
<cap6> _flags = _flags ^ 1<<_cur;
 
<cap6> that will flip the bit no matter what it was
 
<Sandip> then it would also affect the others
 
<cap6> nope
 
<cap6> it exclusive ORs it
 
<Sandip> ok now i would be able to go to the first check mark
 
<cap6> o the first checked checkmark?
 
<Sandip> the problem that I am getting now is when I hit space it does select the check mark but when I hit up or down key it doesnt go to the next one
 
<Sandip> ya
 
<cap6> can you commit it
 
<Sandip> ok
 
<Sandip> now I have committed all of my changes
 
<cap6> k
 
<Sandip> you can take a look at it
 
<cap6> one thing you need to take out is your default part of the case
 
<cap6> you dont want to exit as a default
 
<Sandip> ok
 
<cap6> and you dont move through the list because you never increase or decrease cur in your down/up cases
 
<Sandip> I do I mean I set down = 1 or 0 so that when it comes inside the switch by default it goes into  case 0
 
<Sandip> where I increase or decrease them
 
<cap6> it doesnt work like that
 
<Sandip> let me try what your saying
 
<cap6> you have to increase and decrease in the up/down cases
 
<Sandip> ya your right
 
<cap6> I think you can take that "0" case out
 
<Sandip> ok I did it now when I press right or down continue then it gives me violation error
 
<Sandip> I think this is because _cur exceeds it limit right ?
 
<cap6> yeah
 
<cap6> o
 
<Sandip> how do I check to see that _cur is the last one ?
 
<cap6> you have to use _cnt not 32
 
<Sandip> If i use _cnt only then it would stop at 3rd position only
 
<cap6> _cnt should be 7
 
<Sandip> well we cant hard code it
 
<Sandip> dont you think so ?
 
<cap6> you cant hard code it
 
<cap6> _cnt should be 7 and it shouldnt be stopping at the 3rd one
 
<Sandip> I have committed my code take a look at it and once you solved commit it back
 
<Sandip> I think I am very close to finish everything up
 
<cap6> you have no condition for the down/right one
 
<cap6> it just says _cur
 
<Sandip> (_cur) ? (done = true) ? _cur++;
 
<cap6> (_cur >= _cnt-1)? (done = true) : _cur++;
 
<Sandip> this is the condition I set it
 
<cap6> that's what it should be
 
<Sandip> awesome
 
<cap6> your space case isnt correct
 
<Sandip> did you committed your changes
 
<cap6> no
 
<Sandip> or should I commit
 
<cap6> you can just do it
 
<Sandip> ok
 
<Sandip> now it says that it is a radio list but still I can be able to select all of them ?
 
<Sandip> even if i had a condition inside of my edit function
 
<Sandip> when you hit space it checks that is it a radio list or simple check list by calling a radio() function
 
<cap6> your conditions arent correct
 
<Sandip> then according to your suggestion i am selecting the current one and setting others to 0
 
<Sandip> why is so ?
 
<Sandip> radio() checks that it is a radio list or not
 
<Sandip> am I correct ?
 
<cap6> it does
 
<cap6> you can also just use _radio
 
<Sandip> then
 
<Sandip> ?
 
<cap6> in your for loop you have to decheck all the checkmarks
 
<cap6> then set _flags to 0
 
<Sandip> _flags = _flags ^ 1<<_cur
 
<cap6> that works for when it's not radio
 
<Sandip> ok
 
<Sandip> i check it with another condition
 
<cap6> you also have to change the checked value of the checkmark object
 
<Sandip> what is that mean ?
 
<Sandip> checkmark object ?
 
<cap6> _checkmarks[i]->checked(false)
 
<cap6> I added a txt file to your branch that has what I think the space case should be
 
<cap6> I'll be back in a couple mins
 
<Sandip> you there
 
<Sandip> hey
 
<Sandip> you there
 
<Sandip>    void* data();
 
<Sandip> returns the bit pattern held in _flags.
 
<Sandip> make sure _flags are updated to the status of the _checkmarks
 
<Sandip> This is the final question
 

Revision as of 22:10, 6 December 2011